关于C#:通过foreach循环将值传递给用户控件

Passing in a value to a usercontrol through a foreach loop

在我的ASP.NET标记中,我有一个foreach循环,它迭代一个简单的列表。在这个foreach循环中,我添加了一个新的用户控件,并尝试从循环中传入值。然而,这个值不会改变,进入那个该死的控制!有人有什么建议吗?

1
2
3
4
<%foreach (userInfo i in this.items)
    { %>  
        <uc1:ItemControl ID="ItemControl" runat="server" UserID='<%#Eval("userID") %>'/>
<%} %>

userid是控件中的公共属性,当它转到set时,其值实际上是:<%eval("userid")%>。我试过绑定和=值,但似乎没有任何效果。

任何帮助都将不胜感激!


看起来像中继器的完美用例:

1
2
   <uc1:ItemControl ID="ItemControl" runat="server" />
</asp:Repeater>

您可以将列表(this.items数据绑定到中继器,并在后面的代码中,在DataBind事件中设置UserID控件的UserID属性。

您的方法不起作用的原因是ID在页面中必须是唯一的。


尝试使用转发器控件