0

我正在寻找一个替代方案,用户不必等待在asp.net页面中回传。 我的情况: 我在我的asp.net页面上有几个下拉列表(11 infact),我有一个复选框。 2个下拉是级联的。即选择第一个下拉菜单会更改第二个下拉内容。我在一些下拉菜单中有一个新选项(6个下拉菜单)。如果用户选择此选项,则会出现一个文本框,并显示一个“添加”按钮。将文本添加到该文本框并点击“添加”将新值添加到下拉列表中并消失此文本框和按钮。那么是否可以使用非回发选项,但是情况相同?用户不喜欢该页面回发11次。我的选择是什么?如果您需要更多信息,请询问。由于替代在asp.net页面上回传

编辑:

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional"> 
                 <ContentTemplate> 
                  <asp:DropDownList ID="ddlCustomerContact" runat="server" DataTextField="FullName" DataValueField="Customers_SourceIDfk2" AutoPostBack="true" TabIndex="1" /> 
                 </ContentTemplate> 
                </asp:UpdatePanel> 

    Protected Sub ddlCustomerContact_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlCustomerContact.SelectedIndexChanged 
    If ddlCustomerContact.SelectedIndex = 1 Then 
     divAddNewCustomerContact.Visible = True 
    Else 
     divAddNewCustomerContact.Visible = False 
    End If 
End Sub 
+0

您使用的是webforms吗?如果是这样,你可以使用UpdatePanels。 – Humpy

+0

@Humpy。我正在查看/测试更新面板,并且我做了类似上面的编辑操作。我有我的选择更改事件的下拉列表,我把一个断点击中,但没有任何反应。 – RookieAppler

+0

看起来你错过了你的触发器。您将需要ContentTemplate中您希望更新的所有内容。然后你会想要使用触发器。触发器是您想要执行操作的按钮,下拉列表等。例如,在我的更新面板中,我使用一个按钮添加到gridview。而不是发布整个页面,触发器是at按钮,并且updatepanel内的控件更新。 – Humpy

回答

0

你的唯一真正的选择,如果你不想回发的标准将是AJAX。有许多框架可用,所以你可以使用微软框架(捆绑3.5+)或jQuery(也包含在VS 2010+中,我相信)。

还有其他框架可用,但这两个将是最紧密集成的。其他框架将需要更多的工作来实施。

0

这就是我如何使用我创建的小部件的更新面板。

<asp:DropDownList ID="ddlPayrollStores" runat="server" OnSelectedIndexChanged="ddlPayrollStores_SelectedIndexChanged" AutoPostBack="true"> 
     </asp:DropDownList> 
     <asp:UpdatePanel ID="UpdatePanelPayroll" runat="server"> 
      <Triggers> 
       <asp:AsyncPostBackTrigger ControlID="ddlPayrollStores" EventName="SelectedIndexChanged"></asp:AsyncPostBackTrigger> 
      </Triggers> 
      <ContentTemplate> 
       <div class="dragbox-content"> 
        <asp:Label ID="lblLabelHours" runat="server" Text="Reg Hours: " Width="350px"></asp:Label> 
        <asp:Label ID="lblTotalHours" runat="server" Text=""></asp:Label> 
        <br /> 
        <br /> 
        <asp:Label ID="lblLabelOverTime" runat="server" Text="Total Overtime Hours: " Width="350px"></asp:Label> 
        <asp:Label ID="lblTotalOvertime" runat="server" Text=""></asp:Label> 
        <br /> 
        <br /> 
        <asp:Label ID="lblLabelHoliday" runat="server" Text="Total Holiday: " Width="350px"></asp:Label> 
        <asp:Label ID="lblTotalHoliday" runat="server" Text=""></asp:Label> 
        <br /> 
        <br /> 
        <asp:Label ID="lblLabelVacation" runat="server" Text="Total Vacation: " Width="350px"></asp:Label> 
        <asp:Label ID="lblTotalVacation" runat="server" Text=""></asp:Label> 
        <br /> 
        <br /> 
        <asp:Label ID="lbllableTotalHours" runat="server" Text="Total Hours: " Width="350px"></asp:Label> 
        <asp:Label ID="lblTotalStoreHours" runat="server" Text=""></asp:Label> 
        <br /> 
        <br /> 
        <asp:Label ID="lblLabelPay" runat="server" Text="Total Pay: " Width="350px"></asp:Label> 
        <asp:Label ID="lblTotalPay" runat="server" Text=""></asp:Label> 
        <br /> 
        <br /> 
        <div style="align-content: center"> 
         <asp:LinkButton ID="lbDetailed" runat="server" Text="Detailed Report" PostBackUrl="~/Reporting/Payroll/StorePayroll.aspx"></asp:LinkButton> 
        </div> 
       </div> 
      </ContentTemplate> 
     </asp:UpdatePanel> 

这是用于显示商店总工资单的工资核算小部件。因此,当我选择要下拉的商店时,更新面板将返回而不回发整个页面。就我而言,它只会将数字显示为标签。希望这会使你朝着正确的方向发展,并且可能会把它清理一些。

+0

谢谢。我正在关注telerik rad ajax管理器方法。你能帮忙吗?这里是我的新问题http://stackoverflow.com/questions/22158705/telerik-radajax-manager-not-updating-dropdownlist – RookieAppler