0
我将在服务器端预填充我的下拉列表。如果父级控件更改,我只想要级联下拉列表。防止CascadingDropDown进行初始AJAX调用
我将在服务器端预填充我的下拉列表。如果父级控件更改,我只想要级联下拉列表。防止CascadingDropDown进行初始AJAX调用
从代码隐藏中填充父代ListBox,并将其“autopostback”属性设置为true
。设置OnSelectedIndexChanged="PopulateChildListBox"
把孩子列表框在一个UpdatePanel,和parentListBox与UpdatePanel的
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="lbParent" />
</Triggers>
<ContentTemplate>
<asp:ListBox ID="lbChild" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
相关联。在您的代码隐藏,有 “PopulateChildListBox” 方法填补了孩子的ListBox
protected void PopulateChildListBox(object sender, EventArgs e)
{
// Get the data for the child listbox
lbChildListBox.DataBind();
}
因此,当父列表框更改时,您的子列表框只会更新其内容(通过Asp.Net AJAX)。
Hmn ......我原本希望能有一种不那么复杂的方式来做到这一点。 – Larsenal 2009-10-19 20:44:21
那么,你需要在UpdatePanel中至少放置子ListBox,这是给定的。你也可以把父列表框放在那里,但是这将毫无意义,而且在回发时重绘它确实很浪费。所以这意味着你必须将它与UpdatePanel关联,因此触发器部分。如你所说,你需要在代码隐藏中填充子ListBox,因此'PopulateChildListBox()'。所以我看不出有多容易做到这一点。此外 - 这些都没有一点复杂:-) – 2009-10-19 23:17:46