我需要弄清楚如何在GridView中绑定CheckBox值,我在GridView中编写了CheckBox.Checked = DataBinder.Eval(Container.DataItem,“IsSubscribed”),但是CheckBox总是被检查,即使{ {1}}是假的。
在页面回发之前,我已在IsSubscribed
中绑定网格。这是我的代码:
Page_Load
感谢。
答案 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>