2012-10-11 19 views
10

私はasp.net mvcで作業しています。私は剣道MVCのグリッドにメッセージのリストを表示しようとしています。 私は、のようなコードを書か剣道の条件に基づいて行を書式設定する方法

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

答えて

7

dataBoundイベントを使用して行を変更できます。

dataBound: function() 
{ 
    $('td').each(function(){ 
    if(some condition...) 
     { 
     $(this).addClass('someBoldClass')} 
     } 
    }) 
} 
18

サンヤは、あなたがデータバインドされたイベントを使用することができますが、それはTR要素(行)を介してサイクルに良くなります示唆したように。また、メッセージが読み取られたかどうかを示すプロパティがあるかどうかを調べるには、関連するdataItemが必要であると私は考えています。

dataBound: function() 
{ 
    var grid = this; 
    grid.tbody.find('>tr').each(function(){ 
    var dataItem = grid.dataItem(this); 
    if(!dataItem.IsMessageRead) 
     { 
     $(this).addClass('someBoldClass'); 
     } 
    }) 
} 
+0

それは$(この).find(「TR」)。各(関数()のようにすべきではない...? の方法は、あなたがそれを書いた、それは意志ページ上のTRのすべてを循環。 – Mahmoodvcs

+0

それは正しいです、私は私の投稿を更新し、今すぐそれはグリッドテーブル要素の直接の子供の行を介して循環します。 –

+0

それはあなたがユーザーのサーバーデータバインディング、ala DataSource(ds => ds.Server()、 grid.dataItem(this)を使用してjavascriptの基になるデータ項目にアクセスできませんか? – topwik

関連する問題