【发布时间】:2012-08-13 07:03:05
【问题描述】:
我正在使用下面的代码来填充另一个下拉列表的选择。 但不知何故,当在 ddlTypes 中选择项目时,不会填充 ddlSubTypes
在 ddlTypes 的 selectedindex 更改事件上,我正在绑定 ddlSubTypes。
<tr>
<td class="style3">
<asp:ScriptManager ID="scma" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UP1" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlTypes" runat="server" Width="200px" AutoPostBack="true" OnSelectedIndexChanged="ddlTypes_SelectedIndexChanged1">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
<tr>
<td class="style3">
<asp:UpdatePanel ID="UP2" runat="server">
<ContentTemplate>
<asp:DropDownList ID="ddlSubTypes" runat="server" Width="200px">
</asp:DropDownList>
</ContentTemplate>
</asp:UpdatePanel>
</td>
</tr>
Protected Sub ddlTypes_SelectedIndexChanged1(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlTypes.SelectedIndexChanged
Try
'Populate schemes
ddlSubTypes.Items.Clear()
Dim ID As Integer = ddlTypes.SelectedValue
Dim dt As DataTable = IterateSubtypesContents(ID)
ddlSubTypes.DataTextField = dt.Columns("Type").ToString()
ddlSubTypes.DataValueField = dt.Columns("ID").ToString()
ddlSubTypes.DataSource = dt
ddlSubTypes.DataBind()
UP2.Update()
Catch ex As Exception
End Try
End Sub
【问题讨论】:
-
为什么要放置两个独立的更新面板?如果可能,不要将整个
放在更新面板中,而不是放在
标记中。 @WaqarJanjua 是的,我先这样做了。我在单个更新面板中有两个下拉菜单。但它也不起作用。ok 试试这个:在第二个更新面板 (UP2) 中放置一个 asynpostbacktrigger 并将其控件 ID 设置为 ddlTypes 并且不要在后面的代码中调用 UP2.Update 方法。也许您在任何回发中填充 ddlTypes?并将您的脚本管理器移出桌面。无需将其放置在 table td 标记中。
标签: asp.net .net ajax updatepanel scriptmanager