11

私はasp.net mvcに取り組んでいます。Kendo mvc ui グリッドにメッセージのリストを表示しようとしています。私は次のようなコードを書きました、

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 を使用しましたが、行全体をフォーマットしたい特定のセルのみをフォーマットできます。私を案内してください。

4

3 に答える 3

18

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');
      }
   })
}
于 2012-10-11T19:10:18.140 に答える
7

行を変更するには、dataBound イベントを使用できます。

dataBound: function ()
{
   $('td').each(function(){
     if(some condition...)
      {
         $(this).addClass('someBoldClass')}
      }
   })
}
于 2012-10-11T07:22:18.413 に答える
0

それを行う別の方法があります。これは RowAction と呼ばれます

.RowAction(row => 
{
   if (condition)
   {
      row.HtmlAttributes["class"] = "someBoldClass";
   }
})

RowActionは、サーバー側でレンダリングされる行に対してのみ使用できることに注意してください。したがって、あなたの場合、DataBoundの代わりにRowActionを使用できます。

于 2018-06-22T08:44:38.923 に答える