ASP.NET Repeater - Eval() for bool?

本文关键字:for bool Eval NET Repeater ASP | 更新日期: 2023-09-27 17:49:41

我有一个简单的中继器,我想在其中显示选中/未选中的复选框:

<asp:Repeater ID="myRepeater" runat="server">
   <ItemTemplate>
      <td>
         <asp:CheckBox runat="server" ID="cb" Checked='<%# Eval("value") %>' />
      </td>
    </ItemTemplate>
 </asp:Repeater>

var list = new List<bool>();
list.Add(true);
list.Add(false);
myRepeater.DataSource = list;
myRepeater.DataBind();

但是我得到一个错误:

数据绑定:"系统。的属性不包含名字"价值"。

如何修复

ASP.NET Repeater - Eval() for bool?

试试这个:

<asp:Repeater ID="myRepeater" runat="server">
   <ItemTemplate>
      <td>
         <asp:CheckBox runat="server" ID="cb" Checked='<%# Container.DataItem %>' />
      </td>
    </ItemTemplate>
 </asp:Repeater>

Eval(x)是Databinder.Eval(Container)的快捷方式。它为重复器中的行项评估属性/等x。但是您不需要计算任何东西,您只需要原始的DataItem。