c# - 通过 foreach 循环将值传递给用户控件

标签 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 是控件中的公共(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/

相关文章:

c# - WPF MVVM : ItemTemplate for binding a list of ICommands to a ListBox

c# - 这两个陈述是否相同?

c# - 这个 C# "using"指令是什么?

asp.net - 大数据集的自动完成优化

WPF 将数据对象从主应用程序 UI 传递到用户控件

c# - 缺少反序列化引用时不抛出异常

c# - 特定 ASP.NET MVC4 URL 的自定义配置设置

.net - asp :GridView textbox always return blank value

c# - wpf中的UserControl显示顺序

c# - 自定义通用用户控件未出现在工具箱中