我收到错误
指定的演员表无效
当我尝试运行我的语法时。我想要做的是,如果数据库中的值为yes,请选中复选框,如果不是,则不要选中该复选框。这是我的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
都是数据库中的所有字段。
答案 0 :(得分:0)
您必须进行以下更改才能使其正常工作。
我假设数据项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>