开发者

Dynamically assigning a property in a usercontrol in an ASP.NET repeater control

I currently have a repeater control and inside the itemtemplate I have a usercontrol. This usercontrol renders correctly, but I am trying to assign a dataitem to a property in the repeater control.

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

RequestId is just an Int32. It just doesn't assign it.

I can 开发者_Go百科put the eval outside of the usercontrol just in the itemtemplate and it correctly outputs the right id.

If I remove the whole eval and just type a number in then it works fine.

Any help appreciated.

[UPDATE] : Issue Solved

I was using an EntityDataSource and this automatically binded to the repeater. It printed out all the information from the database on the screen without any codebehind. But when I put in the code behind Repeater1.DataBind(); it then started to work.

I don't know why, but hey it's solved. It now successfully passes the value through. I imagine it has something to do with the page lifecycle.


If you just bind with repeater collection of int, you need use this:

<uc1:Request ID="Request1" runat="server" RequestId='<%# Container.DataItem %>' />

And don't forget to call DataBind() for repeater or for Page where there is a repeater control.


Are you missing a ' at the end?

change following:

RequestId='<%# Eval("RequestId") %> />

to

RequestId='<%# Eval("RequestId") %>' />


You can implement this by using Repeater control's ItemDataBound event, so that you can set the dynamic property for the control.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜