【发布时间】:2017-06-21 08:04:10
【问题描述】:
我在 ASP.NET 中使用 C#。我有许多用 HTML 创建的标签控件。我希望能够遍历每个标签并使用 C# 更改它们的文本。我尝试使用下面的代码,在其中循环遍历字符串数组(每个项目代表标签的 id),然后使用 FindControl 函数获取具有特定 id 的标签,然后更改其文本。但是,在运行代码时出现以下错误:
System.InvalidCastException:无法将“System.Web.UI.HtmlControls.HtmlGenericControl”类型的对象转换为“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";
}
【问题讨论】:
-
想想也许你想要
<ASP:Label id="label1">而不是<label id="label1">。