0

我在“表格单元格”中插入了一个标签(称为Label1),该单元格又​​插入到数据列表中。

为什么在这种情况下,我不能在 Page_Load 方法中使用例如 Label1.Text,但是当我在数据列表之外插入标签时,对 Label1 的任何引用都可以正常工作?

是否有解决方法,因为我需要所述表格单元格中的标签,并且还能够从代码隐藏文件修改其标题(.Text 属性),我计划在其中为其分配存储的值程序。您好,非常感谢您。

4

2 回答 2

2

Label控件是为 a 拥有的每一行创建的DataList,并且它的ID前缀是它所在的每个容器(因此它不再称为 Label1) - 您需要处理OnItemCreatedOnItemDataBound事件,然后找到并将其转换为Label Label1 = (Label)e.Item.FindControl("Label1"),只有在那之后您才能访问它。

于 2012-06-04T22:02:15.820 回答
1

如果控件位于数据列表中,则它将针对列表中的每个项目重复。因此,引用数据列表之外的控件是没有意义的,因为 ASP.NET 不知道要引用哪个实例 - 如果没有数据,甚至不会有任何实例!

您可以访问给定数据列表中的项目的标签,但是:

DataListItem item = dataList.Items[0]; // or whichever item you want
Label label1 = (Label)item.FindControl("Label1");
于 2012-06-04T21:58:28.800 回答