通过foreach循环将值传递给usercontrol

时间:2010-12-21 13:45:50

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

在我的asp.net标记中我有一个foreach循环遍历一个简单的列表。在这个foreach循环中,我添加了一个新的用户控件并尝试从循环中传入值。然而,这个价值只是不会让步并进入那该死的控制!有人有什么建议吗?

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

userID是控件中的公共属性,当它设置时,该值只是字面上的:&lt;%#Eval(“userID”)%&gt;。我已经尝试了#Bind和= Value,但似乎没有任何效果。

任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:4)

看起来像repeater的完美用例:

<asp:Repeater runat="server" id="myRepeater">
   <uc1:ItemControl ID="ItemControl" runat="server" />
</asp:Repeater>

您可以将列表(this.items)数据绑定到转发器,并在后面的代码中,在DataBind事件中设置UserID控件的ItemControl属性。< / p>

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

答案 1 :(得分:3)

尝试使用Repeater控件