【问题标题】:jqGrid Custom Formatter Set Cell wont work with options.rowIdjqGrid 自定义格式化程序设置单元格不适用于 options.rowId
【发布时间】:2012-01-24 15:22:22
【问题描述】:

我浏览了所有帖子,终于让 setCell 使用硬编码值,但不使用 options.rowId。

 function StatusFormatter(cellvalue, options, rowObject) {
    if (cellvalue == 'C'){
        jQuery("#list").setCell(options.rowId , 'SOORDLINE', '', { color: 'red' });
        jQuery("#list").setCell("[2.000]", 'SOORDLINE', '', { color: 'red' });
        jQuery("#list").setCell('[2.000]', 'SOREQDATE', '', { color: 'red' });
        jQuery("#list").setCell(options.rowId, 'SOPRICE', '', { color: 'red' });
    }
    return cellvalue;
    };  

FIRST 和 LAST 行不起作用,但带有硬编码 rowId 的 2 行起作用。我检查了 option.rowId 中返回的内容,它们与硬编码值相同,(当然取决于行。我错过了什么?请帮忙。我看不到行或值之间有任何区别。

已编辑-

我尝试了答案,这似乎是我需要的。我尝试了以下

      { name: 'SOORDLINE', index: 'SOORDLINE', width: 25, search: false ,celattr: function () { return ' style="color: red"'; }
},

至少在我深入逻辑之前让它们都变红,它对我没有任何作用。

【问题讨论】:

    标签: jqgrid cell formatter


    【解决方案1】:

    抱歉,您使用custom formatter绝对错误的方式。自定义格式化程序的目标是提供 HTML 片段来填充相应列中单元格的内容。所以StatusFormatter 将被调用之前 id 等于options.rowId 的行将被创建。此外,出于性能目的,通常使用gridview: true。在这种情况下,网格的全部内容(网格的整个主体)将首先构造为字符串,然后才在一次操作中将其放置在网格主体中。它提高了性能,因为在放置任何元素后,Web 浏览器必须重新计算页面上所有其他元素的位置。

    如果您想在SOORDLINE 单元格上设置文本颜色,您应该改为cellattr

    celattr: function () { return ' style="color: red"'; }
    

    celattr 也可以以celattr: function (rowId, cellValue, rawObject) {...} 的形式使用,您可以测试rawObject 的属性,该属性表示任何列的值,并根据单元格值返回单元格样式。

    或者,您可以枚举loadComplete 内的行并在<tr> 元素上设置样式,而不是为每一行设置相同的样式。以the answer 为例。

    【讨论】:

    • 注意:我确实让它工作了,你的例子只有在 cellattr 中的'l',而不是 2,我查看了示例中的源代码并看到了差异。
    • 此解决方案在分组开启时似乎不起作用。当你排序时,这个例子中的颜色属性就消失了。
    • 我通过关闭 loadonce 解决了颜色问题只是猜测。
    • @D-S:问题是您在问题文本中包含的信息太少。您应该始终包含 jqGrid 的定义。至少完整的colModel 以及datatypeloadonce 参数的值。如果使用自定义格式化程序,您应该始终包含您使用的测试 JSON 或 XML 数据。有了这些信息,我可以向您展示如何在您的情况下使用 cellattr 和自定义 formatter。它将与loadonce: true 一起工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-17
    • 2020-08-25
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    相关资源
    最近更新 更多