如何将参数传递给中继器中的用户控件

本文关键字:用户 控件 中继器 参数传递 | 更新日期: 2023-09-27 18:05:53

我有一个usercontrol它接受一些参数我需要在repeater中插入这个usercontrol并从List<>传递一个参数给每个usercontrol,我是这样做的

<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.

我该怎么做?由于

如何将参数传递给中继器中的用户控件

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

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