如何在gridview中绑定数据表中的复选框值
Posted
技术标签:
【中文标题】如何在gridview中绑定数据表中的复选框值【英文标题】:how to bind checkbox value from datatable in gridview 【发布时间】:2011-11-16 16:26:44 【问题描述】:我需要弄清楚如何在 GridView 中绑定 CheckBox 值,我在 GridView 中编写了 CheckBox.Checked= DataBinder.Eval(Container.DataItem, "IsSubscribed"),但 CheckBox 始终被选中,即使 @ 987654321@ 是假的。
在页面回发之前,我已经在Page_Load
中绑定了网格。这是我的代码:
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox
ID="chkIsSubscribed" runat="server" HeaderText="IsSubscribed"
Checked='<%# DataBinder.Eval(Container.DataItem, "IsSubscribed") %>'/>
</ItemTemplate>
</asp:TemplateField>
谢谢。
【问题讨论】:
请发布您的代码,然后您在 !ispostback 中绑定网格,这样它就不会在每次页面加载时调用 我在 !ispostback 中绑定了网格,我的代码是:将此代码作为您的项目模板元素:
<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox ID="chkIsSubscribed" runat="server" HeaderText="IsSubscribed"
Checked='<%#bool.Parse(Eval("IsSubscribed").ToString())%>' />
</ItemTemplate>
</asp:TemplateField>
【讨论】:
【参考方案2】:<asp:TemplateField HeaderText="Select">
<ItemTemplate>
<asp:CheckBox
ID="chkIsSubscribed" runat="server" HeaderText="IsSubscribed"
Checked='<%#Convert.ToBoolean(Eval("IsSubscribed")) %>'/>
</ItemTemplate>
</asp:TemplateField>
请用这个......
【讨论】:
此解决方案处理了格式异常:String was not recognized as a valid Boolean
【参考方案3】:
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>
【讨论】:
以上是关于如何在gridview中绑定数据表中的复选框值的主要内容,如果未能解决你的问题,请参考以下文章
如何将值存储在列表或数组中并将所有值绑定到数据表然后gridview
求救: Gridview绑定数据时如何根据数据 显示相应图片。。。