具有itemtemplate内属性的Usercontrol

时间:2009-11-06 16:55:09

标签: asp.net

我正在寻找一些例子而无法理解以下内容:

有一个gridview,其中itemtemplate是一个使用控件:

 <asp:TemplateField>
   <ItemTemplate>
     <%# Eval("Title") %>
     <uc:IdBox id="Idbox1" runat="server" TheID='<%# Eval("ID") %>' ShowHeader="True" />
   </ItemTemplate>
 </asp:TemplateField>

还有一个ObjectDataSource连接到gridview。

我的问题是为什么TheID='<%# Eval("ID") %>'会调用此用户控制代码中覆盖的public override void DataBind()

我认为这个值的评估就像ObjectDataSource连接到gridview一样,这个TheID属性应该从ObjectDataSource获取值。

为什么需要调用用户控件的DataBind()?

更新

如果我使用不带属性的usercontrol:

<uc:IdBox id="Idbox1" runat="server"  ShowHeader="True" />

不调用Databind()。

1 个答案:

答案 0 :(得分:0)

有趣......您是明确绑定数据还是仅设置DataSourceID?当您使用ObjectDataSource时,ASP.NET会自动在内部调用DataBind。

以下MSDN文章可能有所帮助:

http://msdn.microsoft.com/en-us/library/ms178366.aspx