我正在查看其他人的代码,其中有一个用户控件:
<UserControl:Comments ID="Comments1" runat="server" ObjectID="4" ObjectRecordID='<%#((Alert)Container.DataItem).AlertId %>'></UserControl:Comments>
我不太明白是如何分配ObjectRecordID的值。一世 通过查看AlerId被分配给ObjectRecordID的代码来理解 但是((Alert)Container.DataItem).AlertId如何获取它的值?
感谢。
答案 0 :(得分:2)
Container
指的是注释框的父控件,它可以是Repeater的单个“行”。
Container.DataItem
是来自 Repeater数据绑定的集合的单个对象。具体而言,绑定到正在处理的“行”的对象。
(Alert)Container.DataItem
获取DataItem并将其强制转换为Alert
引用。
.AlertId
获取上一步产生的AlertId
对象的Alert
属性,以便可以将其值分配给{ObjectRecordID
的{{1}}属性1}}控制。
答案 1 :(得分:1)
<%# %>
元素向ASP.NET发出信号,表示您正在对表达式进行数据绑定;因此,以及它包含在Data-bindable控件的ItemTemplate中的事实,属性Container.DataItem
现在可用。 Container.DataItem
是一个Object
(这就是它被强制转换为Alert
类型的原因),表示绑定到控件的数据对象列表中的当前项。