如何使用DataBinder.Eval在gridview中选中复选框

时间:2011-10-07 15:56:07

标签: c# asp.net

我正在尝试复选一个复选框,如果值基本上是我的数据库中的1或0 一个名为Active (bit, not null)的字段,我可以将值传递给gridview ..但是现在我正在尝试检查该位是否为1或未检查该位是否为0但它不起作用..它只是显示未选中,但该位为1。

   <ItemTemplate>
   <asp:CheckBox ID="ItemCheck" runat="server"
    Enabled='<%# (DataBinder.Eval(Container.DataItem, "Active")) %>' />
   </ItemTemplate>

非常感谢任何帮助

2 个答案:

答案 0 :(得分:8)

试一试:

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#Convert.ToBoolean(Eval("Active"))%>' .. />

你也可以这样做:

<asp:CheckBox ID="CheckBox1" runat="server" Checked='<%#((bool)Eval("Active"))%>' .. />

答案 1 :(得分:1)

您可以使用CheckBoxField自动执行此操作,并且是GridView的默认子控件

<asp:GridView ......>
  <Columns>
    <asp:CheckBoxField DataField="Active" SortExpression="Active" />
  </Columns>
</asp:GridView>

这完全是风格问题,但我更喜欢使用RadioButtonList,因为它通常对用户来说更直观

<asp:TemplateField ....>
    <ItemTemplate>
        <asp:RadioButtonList ID="rblActive" runat="server"
            SelectedValue='<%# Bind("Active") %>'
            RepeatDirection="Horizontal">
            <asp:ListItem Value="1">Enabled</asp:ListItem>
            <asp:ListItem Value="0">Disabled</asp:ListItem>
        </asp:RadioButtonList>
    <ItemTemplate>
</asp:TemplateField>