如何将参数传递给转发器中的usercontrol

时间:2011-08-18 13:24:40

标签: c# asp.net user-controls repeater

我有一个usercontroll接受一些参数,我需要在转发器中插入此usercontrol并从List<>传递参数对于每一个人,我这样做:

<asp:Repeater ID="winnersRepeater" runat="server">
  <ItemTemplate>
    <uc:myControl ID="myControl" NodeId="<%# DataBinder.Eval(Container.DataItem,"Id")%>" runat="server" />        
  </ItemTemplate>
</asp:Repeater>

我在PageLoad中绑定:

List<Winner> winners = new List<Winner>();
//...
winnersRepeater.DataSource = winners;
winnersRepeater.DataBind();

它不起作用,我得到Error creating usercontrol... The server tag is not well formed.

我该怎么办?感谢

2 个答案:

答案 0 :(得分:5)

这里的技巧是引号 - 你在这里使用双引号来打开和关闭NodeId属性,并将字符串括在表达式中。你应该在一个地方使用单引号,在另一个地方使用双引号。

答案 1 :(得分:2)

您可以处理Repeater的ItemDataBound事件。在你的处理程序中,你应该能够执行FindControl(“myControl”)并将NodeId值传递给它,而不必在标记中声明它。