我通过SP从数据库表中选择一个BIT字段并使用它来填充gridview。除了Checkbox字段之外,gridiview中的所有字段都很好,它不表示来自数据库的布尔数据。它仍然是UnTicked而不是让Ticked包含TRUE值
<asp:TemplateField HeaderText="Conveyed ?">
<ItemTemplate>
<asp:CheckBox ID="chkBoxIsConveyed" runat="server" OnCheckedChanged="chkBoxIsConveyed_CheckedChanged" Checked='<%# Convert.ToBoolean(Eval("IsConveyed")) %>' AutoPostBack="true" />
</ItemTemplate>
</asp:TemplateField>
的.cs:
protected void chkBoxIsConveyed_CheckedChanged(object sender, EventArgs e)
{
int index = ((GridViewRow)((Control)sender).Parent.Parent).DataItemIndex;
}
答案 0 :(得分:1)
你必须改变这个:
Checked='<%# Convert.ToBoolean(Eval("IsConveyed")).ToString() == "1" ? true : false
对此:
Checked=<%# Convert.ToBoolean(Eval("IsConveyed")) %>