2014-09-22 23 views
-1

ASPX:如何檢測Web窗體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.

+0

動態創建的控件或爲什麼你不做eng_lblContent.Visible = True?此外,你應該閱讀有關本地化http://msdn.microsoft.com/en-us/library/vstudio/c6zyy3s9(v=vs.100).aspx – Esko 2014-09-22 04:53:08

+0

我有這麼多的網絡形式的控制 – 2014-09-22 04:55:09

+0

你只是想檢測'標籤'控制? – Usman 2014-09-22 05:02:13

回答

-2

這意味着Form1中無法找到上述ID控制。嘗試更改爲foreach (var c Control in Page.Controls) P.S. Esko他對本地化是正確的,你所做的事情是不正確的。

這就是我說的好例子:http://msdn.microsoft.com/en-us/library/yt340bh4(v=vs.90).aspx

+0

不工作....... – 2014-09-22 04:58:18

+0

顯示的錯誤是什麼? – 2014-09-22 04:59:13

+0

有同樣的錯誤! – 2014-09-22 05:00:06

-1

你必須使用一個技巧來做到這一點,因爲代碼顯示異常,因爲第一控制渲染是literalControl不具有的ID,所以你必須通過它使用以下代碼

if (c is LiteralControl) 
    continue; 
else 
    { 
    c.Visible = false; 

    if (c.ID.StartsWith("eng")) 
    { 
     c.Visible = true; 
     } 
    } 
+0

有同樣的錯誤... – 2014-09-22 05:21:12

+0

你錯了。文字控制System.Web.UI類控件,所以它也有ID。 – 2014-09-22 05:25:52

+0

@SamieyMehdi是你提供的HTML是完整的?如果它是那麼它不顯示任何錯誤在我身邊 – Usman 2014-09-22 05:31:29

相關問題