2017-06-21 39 views
0

我使用C#与ASP.NET。我有一些我在HTML中创建的标签控件。我希望能够遍历每个这些标签并使用C#更改文本。我尝试使用下面的代码,在这里我通过一个字符串数组(每个项代表标签的ID),然后使用FindControl函数获取具有特定ID的标签,然后更改其文本。但是,当运行代码时,我得到了以下错误:C#:循环遍历标签ID(字符串)和更改标签文本

System.InvalidCastException: Unable to cast object of type 'System.Web.UI.HtmlControls.HtmlGenericControl' to type 'System.Web.UI.WebControls.Label'

我的代码如下:

Default.aspx中:

<body> 
    <label id="label1" runat="server"></label> 
    <label id="label2" runat="server"></label> 
    <label id="label3" runat="server"></label>  
</body> 

在default.aspx.cs:

// below labels already created in default.aspx using HTML (as seen above) 
String[] arr = {"label1", "label2", "label3"}; // each item is label's id 

foreach (String item in arr) 
{ 
    Label lbl = (Label)FindControl(item); 
    lbl.Text = "new text"; 

} 
+5

想想也许你想要''而不是'

+0

[从名称后面的代码中查找标签并设置标签文本]的可能重复(https://stackoverflow.com/questions/19538777/find-label-by-name-and-set-label-text-from-code-背后) – Pikoh

回答

1

将控件从标签更改为ASP:标签修复了问题。