【问题标题】:Usercontrol with property inside itemtemplate带有 itemtemplate 内属性的用户控件
【发布时间】: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='&lt;%# Eval("ID") %&gt;' 调用public override void DataBind() 在后面的这个用户控制代码中被覆盖?

我认为这个值是在 ObjectDataSource 连接到 gridview 时评估的,并且这个 TheID 属性应该从 ObjectDataSource 获取值。

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

更新:

如果我使用没有属性的用户控件:

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

Databind() 没有被调用。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-11
      • 1970-01-01
      • 1970-01-01
      • 2011-03-26
      • 1970-01-01
      相关资源
      最近更新 更多