2016-09-01 4 views
0

У меня есть этот Telerik RadGrid с простым условным форматом с jQuery. Каждый раз, когда я делаю изменения/переключатель страницы/фильтр ... я теряю свой формат. Могу ли я использовать какое-то событие в сетке для вызова этой функции и не потерять формат?Telerik RadGrid с условным форматом

$('td').each(
       function() { 
        var myTD = $(this).text();     
        if (myTD.match("^Due")) { 
         $(this).addClass('trafic-green'); 
        } 
        if (myTD.match("^Not yet due")) { 
         $(this).addClass('trafic-yellow'); 
        } 
        if (myTD.match("^Overdue")) { 
         $(this).addClass('trafic-red'); 
        } 
       } 
+1

Я ужасна с JQuery , но я знаю, что RadGrid вызывает обратную передачу, и это очищает новый класс для ваших элементов в сетке. Я думаю, что в jQuery существует способ продолжения обратной передачи. Я просто не знаю, как это сделать. – Kramb

ответ

1

Существует ряд событий клиента RadGrid, которые вы можете использовать, например, этот.

<ClientSettings> 
    <ClientEvents OnMasterTableViewCreated="MasterTableViewCreated" /> 
</ClientSettings> 

function MasterTableViewCreated(sender, args){ 
    applyStyle(); 
} 

function applyStyle(){ 
    $('td').each(
       function() { 
        var myTD = $(this).text();     
        if (myTD.match("^Due")) { 
         $(this).addClass('trafic-green'); 
        } 
        if (myTD.match("^Not yet due")) { 
         $(this).addClass('trafic-yellow'); 
        } 
        if (myTD.match("^Overdue")) { 
         $(this).addClass('trafic-red'); 
        } 
       } 
} 
+0

Работайте хорошо. Даже с группировкой и фильтрацией функций на сетке. –

0

Другой способ является использование события сетки «DataBound», чтобы получить GridDataItem.

В этом Exemple мы будем случайно клетку BackgroundColor, основанную на CheckBox государства:

protected void Unnamed_DataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
{ 
    if (e.Item is GridDataItem) 
    { 
     GridDataItem item = (GridDataItem)e.Item; 
     CheckBox chk = (CheckBox)item["BoolGood"].Controls[0]; 
     TableCell cell = (TableCell)item["BoolGood"]; 
     cell.BackColor = (chk.Checked ? Color.Green : Color.Red); 
    } 
} 

Мы можем применить CssClass к ячейке непосредственно:

cell.CssClass = "myClass"; 
Смежные вопросы