网格视图复选框已选中数据库值
本文关键字:数据库 视图 复选框 网格 | 更新日期: 2023-09-27 18:31:25
>我得到一个错误
指定的强制转换无效
当我尝试运行语法时。 我想做的是,如果数据库中的值是,请选中复选框,如果为否,则不要选中该复选框。 这是我的 HTML,显示了我如何尝试这样做:
<asp:GridView runat="server" ID="dg123" AutoGenerateColumns="false" CssClass="DataGrids" GridLines="Both" ShowFooter="true">
<FooterStyle CssClass="DataGridFooters" /><HeaderStyle CssClass="DataGridHeaders" />
<Columns>
<asp:BoundField DataField="abc" HeaderText="Alpha" />
<asp:BoundField DataField="efg" HeaderText="Echo" />
<asp:TemplateField>
<ItemTemplate><asp:CheckBox ID="Completed" runat="server" Checked='<%#Eval ("Completed") %>'/></ItemTemplate>
</asp:TemplateField>
</Columns>
在上面的示例中,abc
efg
和 Completed
都是数据库中的字段。
您必须进行以下更改才能完成此操作。
我假设数据项Completed
的值为 yes
或 no
。
-
将以下方法添加到代码隐藏。此方法返回对应于字符串值
yes
或no
的布尔值。此方法必须返回布尔类型,否则您将获得强制转换异常,因为您要绑定到的属性,即Checked
是布尔类型。public bool GetBoolValue(string val) { if (val.ToLower() == "yes") { return true; } else { return false; } return false; }
-
在标记中,将复选框的标记更改为下面给出的内容。
<ItemTemplate> <asp:CheckBox ID="Completed" runat="server" Checked='<%# GetBoolValue(Eval("Completed").ToString()) %>'/> </ItemTemplate>