【问题标题】:Can't manipulate DropDownList inside an UpdatePanel无法在 UpdatePanel 中操作 DropDownList
【发布时间】:2017-06-20 11:38:12
【问题描述】:

这是一篇很长的文章。我正在开发一个使用 ASP.NET 多视图的表单。在第二个视图中,我正在收集邮政编码并查找地址。查找服务工作正常并返回结果。这是裸露的ASCX-

<asp:MultiView ID="multi_signup" runat="server" ActiveViewIndex="0">
   <asp:View ID="mlt_Step1" runat="server">Other data collection</asp:View>
   <asp:View ID="mlt_Step2" runat="server">
     <asp:UpdatePanel ID="upd_Address" runat="server" ChildrenAsTriggers="true">
        <ContentTemplate>                        
           <asp:TextBox ID="txtPostcodeLookup" 
                        ClientIDMode="Static" 
                        runat="server" >
           </asp:TextBox>
            <asp:Button ID="btnPostcodeLookup" runat="server"
                                            Text="Find Address" CausesValidation="false"
                                            CssClass="btn btn-primary findAddress"
                                            OnClick="FindAddress" ClientIDMode="Static" />
            <asp:DropDownList ID="drp_SelectAddress"
                                        runat="server"
                                        AutoPostBack="true"                                            
                                        OnSelectedIndexChanged="PopulateAddress">
            </asp:DropDownList>
            <%--Address 1 --%>                            
            <asp:TextBox ID="Address1Txt" 
                         runat="server" 
                         MaxLength="250">
            </asp:TextBox>
          </ContentTemplate>
          <Triggers>
             <asp:AsyncPostBackTrigger ControlID="btnPostcodeLookup" EventName="Click" />
             <asp:AsyncPostBackTrigger ControlID="drp_SelectAddress" />
          </Triggers>
       </asp:UpdatePanel>
     </asp:View>
    </asp:MultiView>

计划是,使用文本框获取邮政编码,一旦服务返回地址,填充下拉列表并将可见性设置为 true。做出选择后,从下拉值中填充字段的其余部分。

FindAddress 的代码隐藏

 if (addressResults.Item.Count != 0)
            {
                drp_SelectAddress.Items.Clear();
                drp_SelectAddress.Items.Add(new ListItem("--- Please Select ---", ""));

                foreach (var address in addressResults.Item)
                {
                    //Gets the actual List here


                    ListItem AddressOption = new ListItem();
                    AddressOption.Text = text.ToString();
                    AddressOption.Value = value;
                    drp_SelectAddress.Items.Add(AddressOption);

                }
                //This is not working. On debugger its always false!
                drp_SelectAddress.Visible = true;                 }

所以从技术上讲,我无法设置 ListItems 和下拉列表的可见性...想知道为什么...

【问题讨论】:

  • 身边有人帮我吗?

标签: c# asp.net


【解决方案1】:

这可能对其他人有帮助,所以你去吧....

我在页面加载时将视图索引设置为 0。我的一位同事指出了这一点。

【讨论】:

    猜你喜欢
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 2018-04-18
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多