【问题标题】:Telerik Grid Row Custom Formatting on either bit/int/string fieldTelerik Grid Row Custom Formatting on any bit/int/string 字段
【发布时间】:2011-07-29 20:42:21
【问题描述】:

我更喜欢 string 或 int,但会根据 bit 满足它。

目标是,如果字符串字段的值 == '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 关于如何做到这一点的唯一明确示例,所以有人有任何想法吗?

【问题讨论】:

  • 哪一部分不工作?值的匹配?这部分应该可以工作:e.row.style.backgroundColor = "grey";通过显示您尝试比较的实际值来尝试调试。
  • 仍然不知道出了什么问题,但它现在可以正常工作了,客户端事件和 jscript 可以正常工作,但只有在我加载了 Telerik 论坛上提供的示例项目之后,它才能正常工作。跨度>
  • 所以如果有人有同样的神秘问题,那么telerik.com/community/forums/aspnet-mvc/grid/…

标签: c# asp.net-mvc telerik-grid custom-formatting


【解决方案1】:

过了很久,但 Telerik 最终承认,在开源版本上存在 Cellaction 的错误,他们在商业版本上已解决 (http://www.telerik.com/community/forums/aspnet-mvc/grid /cell-action-issue-evidence-provided.aspx),只花了 2 个锁定的主题,直到他们最终接受了我一直在告诉他们的内容。

长话短说,如果您想在遇到 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 能够解开我的主题,以便我可以添加我找到的解决方案。

【讨论】:

  • 另一种方法是 e.row.cells[1].style.backgroundColor = e.dataItem.DateDisplayColour 而不是绿色,你会有 if 语句将其设置为输入您想要显示的颜色。
  • 我现在在 kendoui 中所做的是在列部分中为任何字段提供一个模板,该模板将在模型中设置,例如“模板:'#=Temp3#'”,然后在模型中'this .Temp3 = "
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-07
  • 2011-08-04
  • 2016-05-04
相关资源
最近更新 更多