OnSelectedIndexChanged在asp:updatePanel中不起作用

时间:2016-06-24 09:04:37

标签: c# asp.net

我有一个下拉列表,其中列出了哪些国家/地区。在选择OnSelectedIndexChanged事件期间,国家/地区代码(如+91)将显示在文本框中。下拉列表应位于<asp:Update panel>标记中,更新面板工作正常。 OnSelectedIndexChanged事件也在后面的代码中工作。但问题是文本框中没有显示国家/地区代码值。

这是我的代码..

<asp:UpdatePanel runat="server">
  <ContentTemplate>
    <asp:DropDownList 
      runat="server" 
      ID="ddl_country" 
      AutoPostBack="true" 
      OnSelectedIndexChanged="ddl_country_SelectedIndexChanged">
    </asp:DropDownList>
    <asp:RequiredFieldValidator 
      ControlToValidate="ddl_country" 
      ID="reqCountry" 
      ValidationGroup="req" 
      class="validation-msg" 
      ErrorMessage="Please select a country" 
      InitialValue="0" 
      runat="server" 
      Display="Dynamic">
    </asp:RequiredFieldValidator>
  </ContentTemplate>
  <Triggers>
    <asp:AsyncPostBackTrigger 
      ControlID="ddl_country" 
      EventName="ddl_country_SelectedIndexChanged" />
  </Triggers>
</asp:UpdatePanel>
<asp:TextBox runat="server" ID="text_countrycode"/>

2 个答案:

答案 0 :(得分:0)

text_countrycode位于上述代码中的任何更新面板之外。所以它在表单中,整个表单需要回发以便更改它的文本。

您可能正在使用Updatepanel,因为您不希望整个表单闪现并回发。

更改下拉列表并不会刷新整个页面,因为它位于更新面板中。如果您希望在没有整页回发的情况下更新文本框,请将其放在自己的更新面板中并从第一个触发它。

甚至更容易,只需将它们放在同一个中。

答案 1 :(得分:0)

<ContentTemplate>

中添加文本框控件

试试这段代码:

<asp:UpdatePanel runat="server">
     <ContentTemplate>
       <asp:DropDownList runat="server" ID="ddl_country" AutoPostBack="true" 
       OnSelectedIndexChanged="ddl_country_SelectedIndexChanged"></asp:DropDownList>
       <asp:RequiredFieldValidator ControlToValidate="ddl_country" ID="reqCountry"
                                            ValidationGroup="req" class="validation-msg" ErrorMessage="Please select a country"
                                            InitialValue="0" runat="server" Display="Dynamic">
       </asp:RequiredFieldValidator>
       <asp:TextBox runat="server" ID="text_countrycode"/>
     </ContentTemplate>
        <Triggers>
          <asp:AsyncPostBackTrigger ControlID="ddl_country" EventName="ddl_country_SelectedIndexChanged" />
         </Triggers>
 </asp:UpdatePanel>