在ASP.NET转发器控件中动态分配usercontrol中的属性

Ada*_*ley 6 c# asp.net user-controls

我目前有一个转发器控件,在itemtemplate里面我有一个usercontrol.此用户控件正确呈现,但我尝试将数据项分配给转发器控件中的属性.

 <asp:Repeater ID="Repeater1" DataSourceID="EntityDataSource" runat="server">
    <ItemTemplate>
    <uc1:Request ID="Request1" runat="server" RequestId='<%# Eval("RequestId") %>' />
</ItemTemplate>
Run Code Online (Sandbox Code Playgroud)

RequestId只是一个Int32.它只是没有分配它.

我可以将eval放在usercontrol之外,只是在itemtemplate中它正确输出正确的id.

如果我删除整个eval并只输入一个数字,那么它可以正常工作.

任何帮助赞赏.

[更新]:问题已解决

我使用的是EntityDataSource,它会自动绑定到转发器.它在屏幕上打印出数据库中的所有信息,没有任何代码隐藏.但是当我把代码放在Repeater1.DataBind()之后; 然后开始工作.

我不知道为什么,但嘿,它已经解决了.它现在成功传递了价值.我想它与页面生命周期有关.

小智 4

如果你只是绑定 int 的中继器集合,你需要使用这个:

<uc1:Request ID="Request1" runat="server" RequestId='<%# Container.DataItem %>' />
Run Code Online (Sandbox Code Playgroud)

并且不要忘记为转发器或有转发器控件的页面调用 DataBind()。