2009-10-14 60 views

回答

0

从代码隐藏中填充父代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)。

+0

Hmn ......我原本希望能有一种不那么复杂的方式来做到这一点。 – Larsenal 2009-10-19 20:44:21

+0

那么,你需要在UpdatePanel中至少放置子ListBox,这是给定的。你也可以把父列表框放在那里,但是这将毫无意义,而且在回发时重绘它确实很浪费。所以这意味着你必须将它与UpdatePanel关联,因此触发器部分。如你所说,你需要在代码隐藏中填充子ListBox,因此'PopulateChildListBox()'。所以我看不出有多容易做到这一点。此外 - 这些都没有一点复杂:-) – 2009-10-19 23:17:46