如何绑定gridview中数据表的复选框值

时间:2011-09-14 03:50:43

标签: asp.net .net data-binding gridview checkbox

我需要弄清楚如何在GridView中绑定CheckBox值,我在GridView中编写了CheckBox.Checked = DataBinder.Eval(Container.DataItem,“IsSubscribed”),但是CheckBox总是被检查,即使{ {1}}是假的。

在页面回发之前,我已在IsSubscribed中绑定网格。这是我的代码:

Page_Load

感谢。

3 个答案:

答案 0 :(得分:18)

将此代码作为您的项目模板元素:

<asp:TemplateField HeaderText="Select">
    <ItemTemplate>
        <asp:CheckBox ID="chkIsSubscribed" runat="server" HeaderText="IsSubscribed" 
        Checked='<%#bool.Parse(Eval("IsSubscribed").ToString())%>' />
    </ItemTemplate>
</asp:TemplateField>

答案 1 :(得分:13)

<asp:TemplateField HeaderText="Select"> 
     <ItemTemplate> 
        <asp:CheckBox 
          ID="chkIsSubscribed" runat="server" HeaderText="IsSubscribed" 
          Checked='<%#Convert.ToBoolean(Eval("IsSubscribed")) %>'/>  
     </ItemTemplate> 
</asp:TemplateField>

请用这个......

答案 2 :(得分:4)

Eval()给出一个对象类型。 所以你必须使用Eval(..)。ToString()如果你想比较它... 像:

        <asp:TemplateField HeaderText="Actif">
            <ItemTemplate><asp:CheckBox ID="chkIsACTIF" runat="server" Enabled="false" Checked='<%# (Eval("ACTIF").ToString() == "1" ? true : false) %>' /></ItemTemplate>
            <EditItemTemplate><asp:CheckBox ID="chkACTIF" runat="server" Checked='<%# (Eval("ACTIF").ToString() == "1" ? true : false) %>' Enabled="true" /></EditItemTemplate>
            <FooterTemplate><asp:CheckBox ID="chkNewACTIF" runat="server" Checked="true" /></FooterTemplate>
        </asp:TemplateField>