【问题标题】:DataFormatString for Boolean column布尔列的 DataFormatString
【发布时间】:2012-02-18 09:34:46
【问题描述】:

我有一个带有动态数据源的网格视图。

我在代码隐藏中添加列。

BoundField col=new BundField(); 
col.DataField="Active";
col.DataFormatString=//DataFormatString;
gridview1.Columns.Add(col);

如何为布尔列设置是/否?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我将此代码用于 VB:

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

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

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

    【讨论】:

      【解决方案2】:

      在选择数据时,我会用SQL完成:

      select id, fname, (case  when Active = 'true' then 'Yes' else 'No' end) AS Active from tblName
      

      现在不再需要对其进行格式化,返回的 Active 列被替换为另一个具有相同名称但包含 Yes/No 值的列。
      我假设您的活动列是一个包含真/假的位列,但如果有其他东西用您的值替换真/假

      【讨论】:

      • 但是如果您需要在显示之前使用布尔值怎么办?除非您在需要使用它时检查“是”字符串或“否”字符串,否则此方法将打破这一点。好主意;但仅当您只是要查看数据时。
      【解决方案3】:

      我发现上面使用 DataFormatString 的解决方案在 GridView 中对我不起作用。

      对我有用的是使用模板列,我试图避免这样做......

      Can I convert a boolean to Yes/No in a ASP.NET GridView

      【讨论】:

        【解决方案4】:

        你可以这样做

        dataformatstring="{0:Yes/No}"
        

        【讨论】:

          【解决方案5】:

          使用 dataformatstring="{0:Yes/No}";

          【讨论】:

          • 仍在打印:假真
          猜你喜欢
          • 1970-01-01
          • 2021-05-17
          • 2015-01-21
          • 1970-01-01
          • 2015-10-21
          • 1970-01-01
          • 2017-02-13
          • 2016-09-16
          • 2013-02-01
          相关资源
          最近更新 更多