2014-11-04 53 views
-2

我有一个名为“ddlCountry”的下拉列表,它只能更新另一个名为“ddlCity”的下拉列表。 我应该如何使用UpdatePanel加载第二个下拉列表,而不是执行完整的回发?因为我觉得没有回传属性的第一个下拉列表如何使用ASP.Net UpdatePanels避免完整回发?

设定为“真”我不能得到“的SelectedIndexChanged”事件我tryed这

<li> 
    <label>Grupo Gestor:</label> 
    <asp:DropDownList ID="ddlCountry" runat="server" Width="356px" 
     DataTextField="Country" DataValueField="CodCountry" AutoPostBack="False" 
     OnSelectedIndexChanged="ddlGrupoGestor_SelectedIndexChanged" /> 
</li> 
<li> 
    <label>Gestor:</label> 
    <asp:UpdatePanel ID="upd_ddlGroup1" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:DropDownList ID="ddlCity" runat="server" Width="356px" DataTextField="City" DataValueField="CodCity" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlCountry" EventName="SelectedIndexChanged" /> 
     </Triggers> 
    </asp:UpdatePanel> 
</li> 

没有工作

+0

不,你不能避免页面生命周期,UpdatePanel的是专门为导致其在部分回发。此外,在第一个列表中将AutoPostback设置为false将意味着不会触发SelectedIndexChanged事件,即无回发。 – sh1rts 2014-11-05 00:33:31

回答

1

在你的场景最好的用法是使用ajax控件工具包的Cascaded DropDownList。

这里了解如何使用它:

Using a Cascaded DropDownList with Database

Cascaded DropDownList using Database in asp.net

+0

谢谢你的男人。我以前从未听说过这种级联。用DropDown解决了我的问题。但我认为仍然不知道UpdatePanel的合理使用hehehe – Mucida 2014-11-04 19:27:48

+1

我们把控件放在更新面板中,我们想更新而不刷新整个页面(没有完整的回传) – 2014-11-05 04:42:12

+0

问题是SelectedIndexChanged在没有回传的情况下不工作 – Mucida 2014-11-05 10:52:02