【问题标题】:C#: Looping through array of label ids (strings) and changing labels textC#:循环遍历标签 ID(字符串)数组并更改标签文本
【发布时间】: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";

}

【问题讨论】:

标签: c# asp.net


【解决方案1】:

将控件从 Label 更改为 ASP:Label 解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-25
    • 2011-12-09
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    • 2018-10-22
    • 1970-01-01
    相关资源
    最近更新 更多