【发布时间】: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 和下拉列表的可见性...想知道为什么...
【问题讨论】:
-
身边有人帮我吗?