【发布时间】:2009-11-06 16:55:09
【问题描述】:
我正在查看一些示例,但无法理解以下内容:
有一个gridview,里面的itemtemplate是一个使用控件:
<asp:TemplateField>
<ItemTemplate>
<%# Eval("Title") %>
<uc:IdBox id="Idbox1" runat="server" TheID='<%# Eval("ID") %>' ShowHeader="True" />
</ItemTemplate>
</asp:TemplateField>
还有连接到gridview的ObjectDataSource。
我的问题是为什么TheID='<%# Eval("ID") %>' 调用public override void DataBind() 在后面的这个用户控制代码中被覆盖?
我认为这个值是在 ObjectDataSource 连接到 gridview 时评估的,并且这个 TheID 属性应该从 ObjectDataSource 获取值。
为什么需要调用用户控件的DataBind()?
更新:
如果我使用没有属性的用户控件:
<uc:IdBox id="Idbox1" runat="server" ShowHeader="True" />
Databind() 没有被调用。
【问题讨论】:
标签: asp.net