ASP.NET中继器绑定List <string>
我将List<string>
绑定到Repeater控件。 现在我想用Eval
函数来显示ItemTemplate
的内容
<%# Eval("NAME") %>.
但是我不确定我应该用什么来代替NAME。
只需使用<%# Container.DataItem.ToString() %>
如果你担心空值,你可能需要重构(.NET 6+)
<asp:Repeater ID="repeater" runat="server"> <ItemTemplate> <%# Container.DataItem?.ToString() ?? string.Empty%> </ItemTemplate> </asp:Repeater>
请注意,如果您使用的是低于.NET 6,则不能使用空条件运算符 Container.DataItem?.ToString()
将ItemType设置为System.string
<asp:Repeater ItemType="System.string" runat="server"> <ItemTemplate> <%# Item %> </ItemTemplate> </asp:Repeater>
rptSample.DataSource = from c in lstSample select new { NAME = c };
在你放的中继器
<%# Eval("NAME") %>
这应该工作得很好:
<ItemTemplate> <%=this.GetDataItem().ToString() %> </ItemTemplate>
你必须在这里使用数据库语法,否则将无法工作。
<%# this.GetDataItem().ToString() %>
基于@RobertoBr提供的LINQ的更完整的示例:
在后面的代码中:
List<string> notes = new List<string>(); notes.Add("Value1") notes.Add("Value2") repeaterControl1.DataSource = from c in notes select new {NAME = c}; repeaterControl1.DataBind();
在页面上:
<asp:Repeater ID="repeaterControl1" runat="server" > <ItemTemplate> <li><%# Eval("NAME") %></li> </ItemTemplate> </asp:Repeater>