在我的 asp.net 标记中,我有一个循环遍历简单列表的 foreach 循环。在这个 foreach 循环中,我添加了一个新的用户控件并尝试从循环中传递值。然而,这个值不会改变并进入那个该死的控制!有人有什么建议吗?
<%foreach (userInfo i in this.items)
{ %>
<uc1:ItemControl ID="ItemControl" runat="server" UserID='<%#Eval("userID") %>'/>
<%} %>
userID 是控件中的公共(public)属性,当它去设置时,值就是字面上的:<%#Eval("userID") %>。我已经尝试过#Bind 和=Value,但似乎没有任何效果。
如有任何帮助,我们将不胜感激!
最佳答案
看起来像是 repeater 的完美用例:
<asp:Repeater runat="server" id="myRepeater">
<uc1:ItemControl ID="ItemControl" runat="server" />
</asp:Repeater>
您可以将列表 (this.items
) 数据绑定(bind)到转发器,并在后面的代码中,在 DataBind
事件中设置 UserID
ItemControl
控件的属性。
您的方法不起作用的原因是 ID 在页面中必须是唯一的。
关于c# - 通过 foreach 循环将值传递给用户控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4499886/