Telerik网格行自定义格式在任何位/int/字符串字段

本文关键字:int 字符串 字段 任何位 网格 自定义 格式 Telerik | 更新日期: 2023-09-27 17:48:56

我更喜欢字符串或int,但会满足于基于位。

目标是如果字符串字段的值== 'blah blah blah',它会把整行变成灰色(蓝色的表格已经使用了红色和绿色,所以我愿意接受任何其他颜色的建议)

我试过了

.RowAction(row =>
    {
        if (row.DataItem.[Bound Data col Name] == "[String value]")
        {
            row.HtmlAttributes["style"] = "background:grey;";
        }
    }) 

.RowAction(row =>
    {
        if (row.DataItem.[Bound Data col Name] == "[String value]")
        {
            row.Grid.HtmlAttributes["style"] = "background:grey;";
        }
    }) 

.ClientEvents(events => events.OnRowDataBound("onRowDataBound"))
function onRowDataBound(e) {
    if (e.dataItem.[Bound Data col Name] == "[String value]") {
        e.row.style.backgroundColor = "grey";
    }
}

所有这些都不起作用这些是MVC中唯一清晰的例子关于如何做到这一点,有人有任何想法吗?

Telerik网格行自定义格式在任何位/int/字符串字段

这花了很长时间,但是telerik终于承认了开源版本的Cellaction有一个bug,他们在商业版本(http://www.telerik.com/community/forums/aspnet-mvc/grid/cell-action-issue-evidence-provided.aspx)上找到了这个bug的地址,直到他们最终接受了我一直告诉他们的事情。

长话短说,如果你想做这样的事情,遇到Cellaction问题,要么购买商业版本,要么按照下面的步骤。

简单地为你想要改变颜色的每个单元格添加一个额外的字段到你的DTO中,在我的例子中,我有6个日期,这取决于他们离现在的日期有多近,他们会改变他们的颜色。

然后你会在控制器中做所有的日期计算,并根据它得到的接近程度将记录颜色到它相应的DTO项。

例如

public String DateDisplay1
public String DateDisplay1Colour

那么你将隐藏网格上的颜色项,并使用它的值来改变DateDisplay1所在行的颜色。

如果DateDisplay1在row1上那么在onRowDataBound(e)函数中我就会有这样的内容

if (e.dataItem.DateDiplay1Colour == "Green") {
        e.row.cells[1].style.backgroundColor = "#7EDF7D";
    }

这样你仍然可以在它的单元格中显示日期,然后根据它相应的隐藏值显示颜色。

then对于admin权限也可以这样做,所以如果用户不是admin,那么

row.cells[6].innerHTML = '<readonly>' + "Edit" + '</readonly>';

这样就去掉了允许用户编辑该记录的链接。

希望这对一些人有所帮助,我希望telerik能够打开我的主题,这样我就可以添加我找到的解决方案。