ASP.NET Repeater - Bool的Eval()?

时间:2014-03-12 16:58:45

标签: c# asp.net repeater

我有一个简单的转发器,我想要显示已选中/未选中的复选框:

<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();

但是我收到了错误:

  

DataBinding:&#39; System.Boolean&#39;不包含属性   姓名&#39;值&#39;。

如何解决?

1 个答案:

答案 0 :(得分:3)

试试这个:

<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.DataItem,x)的快捷方式。其中对转发器中的行项的属性/ etc x进行了评估。但是你不需要评估任何东西,只需要原始的DataItem。