我在GridView中有一个模板字段,可以在编辑视图中显示一个复选框,在普通视图中显示一些自定义文本。
填充网格的查询结果将返回到DataSet中。
在编辑视图中,我无法使用复选框来接受从DataSet重新调整的列(采用T / F格式),因为它表示它的类型不正确。 即使我在列中返回“true”或1,它仍然无效。
我认为我需要转换,但无法在此上下文中获得正确的语法
<EditItemTemplate>
<asp:CheckBox ID="cbPostToFarm" runat="server" Checked='<% Bind("BOOL_COL")' />
</EditItemTemplate>
答案 0 :(得分:1)
使用GridView DataBound事件设置值。在DataBound事件中:
确保您使用的行不是页眉/页脚行
创建对CheckBox的引用。
创建对绑定数据的引用。
在适当的时候选中CheckBox标记。
答案 1 :(得分:1)
这对我来说很有用(.net Visual Studio 2010)
<asp:TemplateField HeaderText="Ordered" SortExpression="Ordered">
<ItemTemplate>
<asp:CheckBox ID="ID_CKBOX" runat="server"
Checked='<%#Eval("ordered") %>' />
</ItemTemplate>
<ItemStyle Width="8px" />
</asp:TemplateField>
其中'ordered'是select语句的db字段之一。
答案 2 :(得分:1)
你太近了!只是错过了#和结尾的%&gt;
<EditItemTemplate>
<asp:CheckBox ID="cbPostToFarm" runat="server" Checked='<%# Bind("BOOL_COL") %>'/>
</EditItemTemplate>
请注意,在Checked而不是Double Quotes之后使用单引号很重要。双引号会出错。
答案 3 :(得分:0)
我通过不直接绑定到数据集但创建强类型列表来解决问题。
我确信必须有一个语法技巧来让复选框直接绑定到DataSet,但为了一个简单的类型,我放弃了看。