2016-09-01 8 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로 끔찍 해요 :

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을 적용 할 수 있습니다 :이 exemple에서

우리는 기회에 CheckBox 상태에 따라 셀 BackgroundColor가는 하지만 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

타 방법은 GridDataItem를 얻기 위해 그리드 '바인딩'이벤트를 사용하는 것입니다.

cell.CssClass = "myClass";