如何在此ASP.NET自定义控件中分配服务器端值?

时间:2010-07-15 17:37:17

标签: asp.net user-controls

我正在查看其他人的代码,其中有一个用户控件:

<UserControl:Comments ID="Comments1" runat="server" ObjectID="4" ObjectRecordID='<%#((Alert)Container.DataItem).AlertId %>'></UserControl:Comments>

我不太明白是如何分配ObjectRecordID的值。一世 通过查看AlerId被分配给ObjectRecordID的代码来理解 但是((Alert)Container.DataItem).AlertId如何获取它的值?

感谢。

2 个答案:

答案 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类型的原因),表示绑定到控件的数据对象列表中的当前项。