2016-09-01 16 views
0

私はこのTelerik RadGridにjQueryを使用した単純な条件付きフォーマットを用意しました。 私は変更/ページスイッチ/フィルタを行うたびに...私のフォーマットを失う。 グリッド内で何らかのイベントを使用して、この関数を呼び出してフォーマットを失うことはできませんか?Telerik RadGrid with条件付きフォーマット

$('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

他の方法は、GridDataItemを取得するためにグリッド「データバインド」イベントを使用することです。我々はCheckBox状態に基づいて、偶然にセルBackgroundColorを行っている。このexempleで

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