Как мне справиться с нулевым состоянием данных в шаблоне DevExtreme DataGrid?

У меня есть следующее определение класса:

public class SubType
{
    [Key] 
    public Guid SubTypeId { get; set; }
    public string SubTypeName { get; set; }
}
public class Item
{
    [Key] 
    public Guid ItemId { get; set; }
    public string Name { get; set; }
    public string Variety { get; set; }
    public SubType ItemSubType { get; set;}
}

Вот мое определение DevExtreme DataGrid:

@(Html.DevExtreme().DataGrid<Item>()
    .DataSource(Model)
    .Columns(columns => {
        columns.AddFor(m => m.Name);
        columns.AddFor(m => m.Variety);
    })
    .MasterDetail(md => {
        md.Enabled(true);
        md.Template(@<text>
            <div class="master-detail-caption">SubType: <%- data.ItemSubType.SubTypeName%> </div>
        </text>);
    })

Когда data.ItemSubType имеет значение NULL, я получаю следующую ошибку:

VM28:3 Uncaught TypeError: не удается прочитать свойство SubTypeName со значением null при eval (eval при (dx.aspnet.mvc.js:75), :3:145) в Object.render (dx.aspnet.mvc.js:85 ) в t.n._renderCore (dx.all.js:80) в t.render (dx.all.js:15) в t._renderDelayedTemplatesCore (dx.all.js:42) в t.renderDelayedTemplates (dx.all.js: 42) в t.renderDelayedTemplates (dx.all.js:107) в t.renderDelayedTemplates (dx.all.js:10) в t.renderDelayedTemplates (dx.all.js:112) в t.renderDelayedTemplates (dx.all. js:10)

Если Data.ItemSubType не равен null, SubTypeName отображается без ошибок.

Как поступить в случае, когда ItemSubType имеет значение null? Есть ли способ условно отображать строку/значение по умолчанию, когда оно равно нулю?


person JohnB    schedule 22.04.2021    source источник


Ответы (1)


Используйте условный оператор a ? b : c

<%- data.ItemSubType != null? data.ItemSubType.SubTypeName : "NoSubType"%>
person mj1313    schedule 22.04.2021
comment
Работает как рекламируется, спасибо. - person JohnB; 22.04.2021