Asp.net 布尔列的DataFormatString

Asp.net 布尔列的DataFormatString,asp.net,Asp.net,我有一个带有动态数据源的gridview 我在codebehind中添加了列 BoundField col=new BundField(); col.DataField="Active"; col.DataFormatString=//DataFormatString; gridview1.Columns.Add(col); 如何设置布尔列的是/否?您可以这样做 dataformatstring="{0:Yes/No}" 你可以这样做 dataformatstring="{0:Yes/No

我有一个带有动态数据源的gridview

我在codebehind中添加了列

BoundField col=new BundField(); 
col.DataField="Active";
col.DataFormatString=//DataFormatString;
gridview1.Columns.Add(col);
如何设置布尔列的是/否?

您可以这样做

dataformatstring="{0:Yes/No}"
你可以这样做

dataformatstring="{0:Yes/No}"

使用dataformatstring=“{0:Yes/No}”

使用dataformatstring=“{0:Yes/No}”

如果选择数据为:

select id, fname, (case  when Active = 'true' then 'Yes' else 'No' end) AS Active from tblName
现在,不再需要对其进行格式化,返回的活动列将替换为另一列,该列具有相同的名称,但包含Yes/no的值。

我假设您的列是一个包含true/false的位列,但如果有其他内容将true/false替换为您的值,则在选择数据时,我会使用SQL执行此操作:

select id, fname, (case  when Active = 'true' then 'Yes' else 'No' end) AS Active from tblName
现在,不再需要对其进行格式化,返回的活动列将替换为另一列,该列具有相同的名称,但包含Yes/no的值。

我假设您的列活动是一个包含true/false的位列,但是如果有其他内容用您的值替换true/false,我发现上面使用DataFormatString的解决方案在GridView中不适用

对我来说,有效的方法是使用一个模板列,这是我试图避免的


我发现上面使用DataFormatString的解决方案在GridView中不适用

对我来说,有效的方法是使用一个模板列,这是我试图避免的


我将此代码用于VB:

<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%#IIf(Boolean.Parse(Eval("Active").ToString()), "Yes", "No")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>

这应该适用于C#(未经测试):

<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%#IIf(Boolean.Parse(Eval("Active").ToString()), "Yes", "No")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>

我将此代码用于VB:

<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%#IIf(Boolean.Parse(Eval("Active").ToString()), "Yes", "No")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>

这应该适用于C#(未经测试):

<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%#IIf(Boolean.Parse(Eval("Active").ToString()), "Yes", "No")%></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Active" SortExpression="Active">
    <ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>


但是如果在显示布尔值之前需要使用它,该怎么办?除非您在需要使用时检查“是”字符串或“否”字符串,否则此方法将中断该操作。好主意;但是只有当你要查看数据的时候。但是如果你需要在显示之前使用布尔值呢?除非您在需要使用时检查“是”字符串或“否”字符串,否则此方法将中断该操作。好主意;但是只有当你要查看数据的时候。仍然打印:False-True仍然打印:False-True