ASPX: заКак определить элементы управления в веб-форме ASP.NET C#?
<form id="form1" runat="server">
Language:<br />
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"
onselectedindexchanged="DropDownList1_SelectedIndexChanged">
<asp:ListItem Value="English">English</asp:ListItem>
<asp:ListItem>Spanish</asp:ListItem>
</asp:DropDownList>
<asp:Label id="eng_lblContent" runat="server" >english content</asp:Label>
<asp:Label id="sp_lblContent" runat="server" >spanish content</asp:Label>
</form>
Код:
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
ChangeLanguage();
}
private void ChangeLanguage()
{
foreach (var item in form1.Controls)
{
Control c = (Control)item;
c.Visible = false;
if (c.ID.StartsWith("eng")) //error : Object reference not set to an instance of an object.
{
c.Visible = true;
}
}
}
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
ChangeLanguage();
}
Ошибка: в этой строке есть ошибка:
if (c.ID.StartsWith("eng")) // Object reference not set to an instance of an object.
Являются ли элементы управления созданными динамически или почему бы вам просто не сделать eng_lblContent.Visible = True? Кроме того, вы должны прочитать о локализации http://msdn.microsoft.com/en-us/library/vstudio/c6zyy3s9(v=vs.100).aspx – Esko
У меня так много contorl в веб-форме –
вы просто пытаетесь обнаружить Контроль над меткой? – Usman