Как отформатировать строку на основе условия в сетке kendo ui mvc
Я работаю над asp.net mvc. Я пытаюсь отобразить список сообщений в сетке mvc ui Kendo.
Я написал код, например,
Html.Kendo().Grid((List<messages>)ViewBag.Messages))
.Name("grdIndox")
.Sortable(m => m.Enabled(true).SortMode(GridSortMode.MultipleColumn))
.HtmlAttributes(new { style = "" })
.Columns(
col =>
{
col.Bound(o => o.RecNo).HtmlAttributes(new { style = "display:none" }).Title("").HeaderHtmlAttributes(new { style = "display:none" });
col.Bound(o => o.NoteDate).Title("Date").Format("{0:MMM d, yyyy}");
col.Bound(o => o.PatName).Title("Patient");
col.Bound(o => o.NoteType).Title("Type");
col.Bound(o => o.Subject);
}
)
.Pageable()
.Selectable(sel => sel.Mode(GridSelectionMode.Single).Type(GridSelectionType.Row))
.DataSource(
ds => ds.Ajax().ServerOperation(false).Model(m => m.Id(modelid => modelid.RecNo))
.PageSize(10)
//.Read(read => read.Action("Messages_Read", "Msg"))
)
.Events(ev => ev.Change("onSelectingGirdRow"))
)
и у меня есть поле в таблице типа IsRead-boolean. поэтому, если сообщение является непрочитанным, тогда мне нужно отформатировать эту запись жирным шрифтом. Я использовал clientTemplates, но с тем, что я могу форматировать только определенные ячейки, я хочу форматировать всю строку. Пожалуйста, направляйте меня.
Ответы
Ответ 1
поскольку Sanja предположила, что вы можете использовать событие dataBound, но лучше будет перебирать элементы tr (строки). Также я предполагаю, что вам понадобится связанный dataItem, чтобы проверить, указано ли свойство, указывающее, прочитано ли сообщение.
например.
dataBound: function ()
{
var grid = this;
grid.tbody.find('>tr').each(function(){
var dataItem = grid.dataItem(this);
if(!dataItem.IsMessageRead)
{
$(this).addClass('someBoldClass');
}
})
}
Ответ 2
Вы можете использовать событие dataBound для изменения ваших строк.
dataBound: function ()
{
$('td').each(function(){
if(some condition...)
{
$(this).addClass('someBoldClass')}
}
})
}