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