按名称查找标签并从后面的代码中设置标签文本

时间:2013-10-23 10:09:57

标签: c# asp.net

我想从后面的代码中设置标签文本。 这是我的aspx页面,我有更多的标签,如lbl2,lbl3 ..

<asp:LinkButton ID="btn1" runat="server" onclick="btn1_Click" >
                      <img id="img1" runat="server"  width="195" height="306" alt="slider"><label id="lb11" runat="server" /></asp:LinkButton>

在代码背后,我正在修改这个

for (int i = 1; i <= dt.Rows.Count; i++)
            {
Label lbltest = new Label();
                lbltest = (Label)this.FindControl("lbl" + i.ToString()) as Label; 
                lbltest.Text = Convert.ToString(dt.Rows[i - 1]["Type"]);
}

但我收到错误: 无法将类型为“System.Web.UI.HtmlControls.HtmlGenericControl”的对象强制转换为“System.Web.UI.WebControls.Label”。 我该怎么办 ?请帮忙!!!!!

2 个答案:

答案 0 :(得分:2)

代码中的标签不是ASP.NET控件。你应该使用:

<asp:Label

而不仅仅是

<label

答案 1 :(得分:2)

从后面的代码创建和设置标签文本

Label lb = new Label();
lb.Text = "SomeText";
lb.Id = "LabelID";
Form.Controls.Add(lb);

如果您想找到已经存在的标签并更改文字:

Label lb = (Label)FindControl("LabelID");
lb.Text = "New text";