2011-04-05 60 views
0

我宁愿为字符串或诠释,但基于位会解决它。Telerik的网格行自定义格式在任位/ INT /串场

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

我已经试过

.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如何做到这一点所以任何人有任何想法的唯一明显的例子?

+0

哪部分不工作?值的匹配? 这部分应该工作: e.row.style.backgroundColor =“gray”; 尝试通过显示您试图比较的实际值进行调试。 – 2011-04-06 17:06:57

+0

仍然不知道什么是错误的,但它现在起作用,以及客户端事件和jscript的作品,但只有当我加载了一个示例项目,我在telerik论坛上提供,然后它的工作。 – Myzifer 2011-04-07 08:47:10

+0

因此,如果任何人有相同的神秘问题,那么http://www.telerik.com/community/forums/aspnet-mvc/grid/telerik-grid-row-custom-formatting-on-either-bit-int-string- field.aspx#1594253 – Myzifer 2011-04-07 09:39:24

回答

3

好吧,永远消失了,但telerik终于承认,Cellaction在开源版本上存在一个错误,他们在商业版本上解决了这个错误(http://www.telerik.com/community/forums/aspnet-mvc/ grid/cell-action-issue-evidence-provided.aspx),它只花了两个锁定的主题,直到他们最终接受了我一直告诉他们的东西。

如果你想要做这样的事情,然后用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"; 
    } 

这样你仍然可以显示日期在它的单元格,然后显示基于颜色关闭其相应隐藏价值。

那么同样可以用管理员的权力,所以如果用户是不是管理员然后

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

从而摆脱链接允许用户编辑记录的方式进行。

希望这有助于一些人,我希望得到Telerik的轮解锁我的主题,所以我可以在我找到了解决办法补充。

+0

这样做的另一种方法是e.row.cells [1] .style.backgroundColor = e.dataItem.DateDisplayColour而不是它是绿色,你会有if语句设置输入颜色你想显示。 – Myzifer 2013-06-28 14:45:00

+0

我现在在kendoui中做的是在列部分给予任何一个字段模板,这个模板将在模板中设置,比如“template:'#= Temp3#'”,然后在模型中this.Temp3 =“<一个类= \'btn btn -...'这里我显示的是基于日期或w/e的不同的引导按钮,这可以用来设置背景颜色或w/e – Myzifer 2013-06-28 14:51:51