2014-11-05 1 views
0

У меня есть страница входа в систему, которая имеет страницу SignInUserControl и находится внутри MasterPage. Внутри страницу входа у меня есть 2 раскрывающихся списковКак я могу запустить событие Selected Index Changed без обратной передачи с помощью UpdatePanel?

ddlCountry

ddlCity

Я хочу изменить страну и автоматически загружать города. Используя этот код:

<li> 
    <label>Your Country:</label> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 
      <asp:DropDownList ID="ddlCountry" runat="server" Width="356px" 
       DataTextField="Country" DataValueField="CodCountry" 
       OnSelectedIndexChanged="ddlCountry_SelectedIndexChanged" AutoPostBack="true" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlCountry" EventName="SelectedIndexChanged" /> 
     </Triggers> 
    </asp:UpdatePanel> 
</li> 
<li> 
    <label>Your City:</label> 
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <asp:DropDownList ID="ddlGestor" runat="server" Width="356px" DataTextField="City" DataValueField="CodCity" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddlCountry" EventName="SelectedIndexChanged" /> 
     </Triggers> 
    </asp:UpdatePanel> 
</li> 

города загружаются, но AutoPostBack = "True" называет Page_Load (для входа в аккаунт), то MasterPage Page_Load() и SignInUserControl Page_Load(). И, кстати, у меня есть другие функции внутри этих Page_Load(), поэтому их также называют

Есть ли способ избежать этого? Похоже, UpdatePanel не является реальным Ajax, потому что работать он должен отправить на сервер всех этих страниц, а не только блок кода, который я хочу

ответ