2012-10-11 18 views
10

Asp.net mvc üzerinde çalışıyorum. Kendo mvc ui şebekesindeki mesajların listesini görüntülemeye çalışıyorum. ben de,Kendo ui mvc ızgarası koşullarına göre satır biçimlendirmek nasıl

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")) 
       ) 

kod yazdım ve ben IsRead-boolean tipi gibi tablodaki alanı var. Mesaj okunmamış mesaj ise, o yazıyı kalın yazı tipiyle biçimlendirmem gerekiyor. Ben clientTemplates kullandım ama bununla birlikte sadece belirli hücreleri biçimlendirebilirim. Lütfen bana yol göster.

cevap

7

Satırlarınızı değiştirmek için dataBound olayını kullanabilirsiniz.

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

Sanja Eğer sınırlama olay kullanabilirsiniz ama elemanları (satırlar) tr dolaşmak için iyi olacaktır önerildiği gibi. Ayrıca, iletinin okunup okunmadığını gösteren özelliğin olup olmadığını kontrol etmek için ilgili dataItem'a ihtiyacınız olduğunu varsayalım.

örn.

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

o $ (this) .find ("tr"). Each (function() gibi olmamalı ...? yolu yazdım, bu olacak sayfadaki TRs'nin tüm aracılığıyla döngüsü – Mahmoodvcs

+0

Bu doğru, benim yazı güncellendi ve şimdi sadece Grid tablo elemanının doğrudan çocuk satırları aracılığıyla döngüleri –

+0

kullanıcı sunucu veri bağlama, ala DataSource (ds => ds.Server(), sen doğru mu? grid.dataItem (this) kullanarak javascript'te temel veri öğesine erişemiyor? – topwik

İlgili konular