Nonfactors MVC Grid Тернарный оператор не работает - PullRequest
0 голосов
/ 22 мая 2018

Я использую большую NonFactor MVC Grid с небольшим успехом, но я вижу странную проблему:

@(Html
    .Grid(items)
    .Build(columns =>
    {
        columns.Add(model => model.Type).Formatted("{0}" == "folder" ? "<span class=\"glyphicon glyphicon-folder-open\"></span>" : "<span class=\"glyphicon glyphicon-file\"></span>").Encoded(false);
        columns.Add(model => model.Id).Titled("Id");
        columns.Add(model => model.Name).Titled("Name");
        columns.Add(model => model.Size).Titled("Size");
    })
    .Empty("No data found")
    .Sortable()
)

Здесь, если свойство строки Type равно folder, в этом столбце должен отображаться значок папки.Однако я обнаружил, что 2-й вариант всегда используется для этого столбца Formatted.

, поэтому, если я переключу параметры для этого троичного оператора, то всегда отображается значок папки, где в настоящее время находится значок файлавсегда отображается.

Кто-нибудь знает, почему это происходит, и есть ли способ преодолеть это?

1 Ответ

0 голосов
/ 04 июня 2018

В итоге я просто сделал это вместо

@(Html
    .Grid(items)
    .Build(columns =>
    {
        columns.Add(model => model.Type).Formatted("<span class=\"glyphicon glyphicon-{0}-open\"></span>").Encoded(false);
        columns.Add(model => model.Type).Titled("Type").Css("hidden");
        columns.Add(model => model.Id).Titled("Id");
        columns.Add(model => model.Name).Titled("Name");
        columns.Add(model => model.ModifiedDate).Titled("Modified");
        columns.Add(model => model.longSize).RenderedAs(model => model.Size).Titled("Size");
        // columns.Add(model => model.mbSize).Titled("Size (MB)");
    })
    .Empty("No data found")
    .Sortable()
    .RowCss(model => "rowStyle")
)

Таким образом, строка

columns.Add(model => model.Type).Formatted("<span class=\"glyphicon glyphicon-{0}-open\"></span>").Encoded(false);

покажет значок папки, если это папка, и ничего, если это файл (так как glyphicon-file-open не является допустимым классом значков)

Не лучшее решение, поскольку сейчас нет значков для файлов, но оно достаточно хорошее.

...