1

我的gridview中有以下复选框:

<asp:TemplateField HeaderText="Active">
    <ItemTemplate>
        <%# DataBinder.Eval(Container.DataItem, "Active")%>
        <asp:CheckBox ID="Active" runat="server"/>
    </ItemTemplate>
</asp:TemplateField>

它工作得很好。我用一个布尔值填充它。问题是它在gridview中显示字符串文本,例如:

真 [x] 假 [ ] 真 [x]

这么久......我想只显示复选框。我在 rowDataBound 事件中尝试了这个:

if (result.Active)
   {
       ((CheckBox)e.Row.FindControl("Active")).Checked = true;
       ((CheckBox)e.Row.FindControl("Active")).Text = string.Empty;
   }

但它不起作用。有一种方法?

谢谢,

佩德罗·杜索

4

1 回答 1

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>
于 2010-07-27T18:47:08.940 回答