【发布时间】:2014-03-03 17:39:23
【问题描述】:
我正在寻找用户不必在 asp.net 页面中等待回发的替代方法。 我的情况 : 我的 asp.net 页面上有几个下拉列表(实际上是 11 个),并且我有一个复选框。 2个下拉菜单是级联的。即选择第一个下拉菜单会更改第二个下拉菜单的内容。我在一些下拉菜单中有一个新选项(6 个下拉菜单)。如果用户选择此选项,则会显示一个带有“添加”按钮的文本框。将文本添加到该文本框并点击“添加”会将新值添加到下拉列表中并消失此文本框和按钮。那么是否可以使用非回发选项但情况相同?用户不喜欢该页面回发 11 次。我的替代方案是什么?如果您需要更多信息,请询问。谢谢
编辑:
<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
【问题讨论】:
-
您在使用网络表单吗?如果是这样,您可以使用 UpdatePanels。
-
@Humpy。我正在寻找/测试更新面板,我做了类似上面的编辑。我为下拉菜单选择了更改的事件,我在它的命中设置了一个断点,但没有任何反应。
-
您好像错过了触发器。您将希望更新 ContentTemplate 中的所有内容。然后你会想要使用触发器。触发器是您想要执行操作的按钮、下拉菜单等。例如,在我的更新面板中,我使用一个按钮来添加到网格视图。触发器不是发布整个页面,而是 at 按钮,并且 updatepanel 中的控件会更新。
-
@Humpy。我不明白。为简单起见,考虑我只有一个下拉列表和一个隐藏的 div(这个 div 包含标签、文本框和一个按钮)。如果用户在下拉菜单中选择“新建”选项,我应该看到 div,如果没有隐藏 div。这不应该通过回发来完成。你能为我构建一个示例代码吗?
标签: asp.net drop-down-menu postback cascadingdropdown autopostback