我目前有一个重复器控件,在itemtemplate中有一个用户控件。这个用户控件渲染正常,但我正在尝试将数据项分配给重复器控件中的属性。
<asp:Repeater ID="Repeater1" DataSourceID="EntityDataSource" runat="server">
<ItemTemplate>
<uc1:Request ID="Request1" runat="server" RequestId='<%# Eval("RequestId") %>' />
</ItemTemplate>
RequestId是一个Int32类型的变量。它本身没有被赋值。
我可以把eval放在用户控件外面,在itemtemplate中,这样它就可以正确地输出正确的id。
如果我删除整个eval,只输入一个数字,那么它就可以正常工作。
任何帮助都将不胜感激。
[更新]:问题已解决
我正在使用EntityDataSource,并且它自动绑定到了repeater上。它打印出了数据库中的所有信息,而没有任何codebehind。但是当我在code behind中加入Repeater1.DataBind();时,它就开始工作了。
我不知道为什么,但问题已经解决了。它现在成功地传递了值。我想这可能与页面生命周期有关。