我的gridview中有以下复选框:
<asp:TemplateField HeaderText="Active">
<ItemTemplate>
<%# DataBinder.Eval(Container.DataItem, "Active")%>
<asp:CheckBox ID="Active" runat="server"/>
</ItemTemplate>
</asp:TemplateField>
它工作得非常好。我用bool值填充它。问题是它在gridview中显示字符串文本,如:
真[x] 假[] 真[x]
等等......我想只显示复选框。我在rowDataBound事件中尝试了这个:
if (result.Active)
{
((CheckBox)e.Row.FindControl("Active")).Checked = true;
((CheckBox)e.Row.FindControl("Active")).Text = string.Empty;
}
但它不起作用。有办法吗?
谢谢,
Pedro Dusso
答案 0 :(得分:3)
为什么不使用CheckBoxField而不是TemplateField?
<asp:CheckBoxField DataField="Active" HeaderText="Active" />
如果由于插入/编辑而必须使用TemplateField,那么你应该能够
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox id="CheckBoxActive" runat="server" Checked='<%#Eval("Active") %>' />
</ItemTemplate>
</asp:TemplateField>