Я могу преобразовать булевскую переменную в Да/Нет в ASP.NET GridView

63
задан piet.t 4 July 2017 в 06:26
поделиться

5 ответов

Я использую этот код для 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>
127
ответ дан travis 24 November 2019 в 16:11
поделиться

Добавьте метод к своему классу страницы как это:

public string YesNo(bool active) 
{
  return active ? "Yes" : "No";
}

И затем в Вашем TemplateField Вы Bind использование этого метода:

<%# YesNo(Active) %>
14
ответ дан 5377037 24 November 2019 в 16:11
поделиться

Нет - но Вы могли использовать шаблонный столбец:

<script runat="server">
  TResult Eval<T, TResult>(string field, Func<T, TResult> converter) {
     object o = DataBinder.Eval(Container.DataItem, field);
     if (converter == null) {
        return (TResult)o;
     }
     return converter((T)o);
  }
</script>

<asp:TemplateField>
  <ItemTemplate>
     <%# Eval<bool, string>("Active", b => b ? "Yes" : "No") %>
  </ItemTemplate>
</asp:TemplateField>
7
ответ дан Mark Brackett 24 November 2019 в 16:11
поделиться

Вы могли использовать Mixin.

/// <summary>
/// Adds "mixins" to the Boolean class.
/// </summary>
public static class BooleanMixins
{
    /// <summary>
    /// Converts the value of this instance to its equivalent string representation (either "Yes" or "No").
    /// </summary>
    /// <param name="boolean"></param>
    /// <returns>string</returns>
    public static string ToYesNoString(this Boolean boolean)
    {
        return boolean ? "Yes" : "No";
    }
}
6
ответ дан Corey Coto 24 November 2019 в 16:11
поделиться

Или можно использовать ItemDataBound событие в коде позади.

3
ответ дан piet.t 24 November 2019 в 16:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: