C# Label.property引用
我在一个“表单元格”中插入了一个标签(称为Label1),然后将其插入到数据列表中 为什么在这种情况下,我不能在Page_Load方法内使用Label1.Text,但是当我在数据列表外插入标签时,对Label1的任何引用都可以完美地工作 是否有解决方法,因为我需要表单元格中的标签(如上所述),并且能够从代码隐藏文件中修改其标题(.Text属性),我计划在该文件中为其分配存储过程的值。C# Label.property引用,c#,sql-server-2008,C#,Sql Server 2008,我在一个“表单元格”中插入了一个标签(称为Label1),然后将其插入到数据列表中 为什么在这种情况下,我不能在Page_Load方法内使用Label1.Text,但是当我在数据列表外插入标签时,对Label1的任何引用都可以完美地工作 是否有解决方法,因为我需要表单元格中的标签(如上所述),并且能够从代码隐藏文件中修改其标题(.Text属性),我计划在该文件中为其分配存储过程的值。 您好,非常感谢您。如果控件位于数据列表中,则会对列表中的每个项目重复该控件。因此,引用datalist之外的控件
您好,非常感谢您。如果控件位于数据列表中,则会对列表中的每个项目重复该控件。因此,引用datalist之外的控件是没有意义的,因为ASP.NET不知道引用哪个实例——如果没有数据,甚至不会有任何实例 您可以访问数据列表中给定项的标签,但是:
DataListItem item = dataList.Items[0]; // or whichever item you want
Label label1 = (Label)item.FindControl("Label1");
如果控件位于数据列表中,则将对列表中的每个项重复该控件。因此,引用datalist之外的控件是没有意义的,因为ASP.NET不知道引用哪个实例——如果没有数据,甚至不会有任何实例 您可以访问数据列表中给定项的标签,但是:
DataListItem item = dataList.Items[0]; // or whichever item you want
Label label1 = (Label)item.FindControl("Label1");
Label
控件是为每个DataList
拥有的行创建的,它的ID
由它所在的每个容器作为前缀(因此不再称为Label1)-您需要处理OnItemCreated
或OnItemDataBound
事件,然后查找并将其转换为Label1=(Label)e.Item.FindControl(“Label1”)
,只有在这之后,您才能访问它。Label
控件是为每个数据列表行创建的,它的ID
由它所在的每个容器前缀(因此不再称为Label1)-您需要处理OnItemCreated
或OnItemDataBound
事件,然后查找并将其转换为Label Label1=(Label)e.Item.FindControl(“Label1”)
,然后才能访问它。谢谢您,ekolis!我如何知道它是Items[0]还是Items[1].etc?可以说,我可以直观/图形化地看到每个datalist组件及其关联的等级吗?可能在设计视图中?不幸的是,在设计视图中,我什么都看不到。这是一种旧情况,它不会影响站点功能,但我无法直观地处理控件,除非在创建时,它们很快就会消失。我我不知道如何还原它们,对此我感兴趣已经有一段时间了。在设计视图中,您应该能够通过右键单击上下文菜单上的选项进入模板模式。这将让您看到控件,并直观地添加更多控件(因此您不必在代码中执行)。至于项[0]与项[1],这完全取决于绑定到数据列表的数据。项[0]将是表示第一个绑定数据项的项,而项[1]将是第二个绑定数据项,依此类推。谢谢你,ekolis,但我找不到“模板模式”,到处都在找。我可以右键单击.ascx文件并选择“视图设计器”,最多,显示为空。我确信我在那里有一个数据列表。不,Label6不能是项[9];相反,每个项都包含datalist项模板中包含的所有标签、文本框等的实例。至于显示为空的设计器,您是否在代码中添加了datalist本身?谢谢,ekolis!我怎么知道是项[0]还是项[1].etc?可以说,我可以直观/图形化地看到每个datalist组件及其关联的等级吗?可能在设计视图中?不幸的是,在设计视图中,我什么都看不到。这是一种旧情况,它不会影响站点功能,但我无法直观地处理控件,除非在创建时,它们很快就会消失。我我不知道如何还原它们,对此我感兴趣已经有一段时间了。在设计视图中,您应该能够通过右键单击上下文菜单上的选项进入模板模式。这将让您看到控件,并直观地添加更多控件(因此您不必在代码中执行)。至于项[0]与项[1],这完全取决于绑定到数据列表的数据。项[0]将是表示第一个绑定数据项的项,而项[1]将是第二个绑定数据项,依此类推。谢谢你,ekolis,但我找不到“模板模式”,到处都在找。我可以右键单击.ascx文件并选择“视图设计器”,最多,显示为空。我确信我在那里有一个数据列表。不,Label6不能是项[9];相反,每个项目都包含datalist项目模板中包含的所有标签、文本框等的一个实例。至于显示为空的设计器,您是否在代码中添加了datalist本身?回答很好,pOcHa,谢谢,我一定会尝试此方法!了解用于同一任务的几种方法很好。回答很好,pOcHa,谢谢你,我一定会试试这个!知道同一个任务的几种方法很好。