MVC Telerik网格格式列bool到字符串

时间:2014-04-04 08:53:30

标签: c# asp.net asp.net-mvc-2 telerik telerik-grid

是否可以在Telerik网格中将布尔值格式化为字符串?

我需要将布尔值(true / false)更改为字符串(是/否)。

我的模特:

[DataMember]
[DisplayName("PANDORA")]
public bool SeVePandora { get; set; }
[DataMember]
[DisplayName("PORTOS")]
public bool SeVePortos { get; set; }
[DataMember]
[DisplayName("CARRIER")]
public bool SeVeCarrier { get; set; }
[DataMember]
[DisplayName("CALCULADORA")]
public bool SeVeCalculadora { get; set; }
[DataMember]
[DisplayName("CONTROL STOCK")]
public bool SeVeControlStock { get; set; }
[DataMember]
[DisplayName("REMARKETING")]
public bool SeVeRemarketing { get; set; }
[DataMember]
[DisplayName("AUTO CREDIT")]
public bool SeVeAutocredit { get; set; }
[DataMember]
[DisplayName("VALORES RESIDUALES")]
public bool SeVeValoresResiduales { get; set; }
[DataMember]
[DisplayName("PRUEBAS")]
public bool EntornoPruebas { get; set; }

我的观点:

<%= Html.Telerik().Grid<VWIS.DataModels.Models.AvisosPromociones.Avisos>()
.Name("ListAvisos")
.Columns(columna =>
    {
        columna.Bound(d => d.IdAViso).Visible(false).Sortable(false);
        columna.Bound(d => d.Titulo).Width(380).Sortable(false);
        columna.Bound(d => d.FechaInicio).Format("{0:dd/MM/yyyy}").Width(95).Sortable(true);
        columna.Bound(d => d.FechaFin).Format("{0:dd/MM/yyyy}").Width(86).Sortable(true);
        columna.Bound(d => d.SeVePandora).Width(50).Sortable(false);
        columna.Bound(d => d.SeVePortos).Width(50).Sortable(false);
        columna.Bound(d => d.EntornoPruebas).Width(50).Sortable(false);
        columna.Bound(d => d.SeVeCarrier).Width(50).Sortable(false);
        columna.Bound(d => d.SeVeCalculadora).Width(50).Sortable(false);
        columna.Bound(d => d.SeVeControlStock).Width(50).Sortable(false);
        columna.Bound(d => d.SeVeRemarketing).Width(50).Sortable(false);
        columna.Bound(d => d.SeVeAutocredit).Width(50).Sortable(false);
        columna.Bound(d => d.SeVeValoresResiduales).Width(50).Sortable(false);
        }).DataBinding(datos => datos.Ajax().Select("_BusquedaAvisos", "Avisos", new { PrimeraBusqueda = true }))
                   .Pageable(page => page.PageSize(10))
                   .Selectable()
                   .Sortable()
                   .Reorderable(reorder => reorder.Columns(true))
                   .ClientEvents(e => e.OnDataBinding("OnDataBinding").OnRowSelect("SeleccionarFila"))

%>

columna.Bound(d => d.SeVePandora).Format() lambda中不允许表达。

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:2)

请尝试使用以下代码段。

colums.Bound(d => d.SeVePandora).Width(50).Sortable(false).ClientTemplate(
    "# if (SeVePandora == true) { #" +
        "<span>Yes</span>" +
    "# } else { #" +
        "<span>No</span>" +
    "# } #"
);

有关详细信息,请this链接。

答案 1 :(得分:2)

我修改了你的代码@ jayesh-goyani。 Telerik Grid需要一个&#39;&lt;&#39;在

.ClientTemplate

中打开逻辑
`colums.Bound(d => d.SeVePandora).Width(50).Sortable(false).ClientTemplate(
    "<# if (SeVePandora == true) { #>" +
        "<span>Yes</span>" +
    "<# } else { #>" +
        "<span>No</span>" +
    "<# } #>"
);`

感谢您的帮助!

答案 2 :(得分:0)

只有客户端模板才能更简单。

columns.Bound(c => c.Required).Width(65)
    .ClientTemplate("#= Price > 0 ? Required ? 'Yes' : 'No' : 'N/A'#");

在我的示例中,我检查了两件事,即价格是否大于零,是否需要,因为我有三个选择。