具有条件格式的Telerik RadGrid

时间:2016-09-01 14:14:23

标签: jquery telerik grid

我有一个带有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');
                    }
                }

2 个答案:

答案 0 :(得分: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');
                    }
                }
}

答案 1 :(得分:0)

另一种方法是使用Grid&#39; DataBound&#39;事件获取GridDataItem

在这个例子中,我们将基于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";