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终于承认了开源版本的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能够打开我的主题,这样我就可以添加我找到的解决方案。