如何从JqGrid中的单元格的自定义格式化程序访问其他行数据

主要的

我有如下XML数据源,

<root>
    <item priceOri = "100" discount = "10"></item>
    <item priceOri = "200" discount = "110"></item>
    .
    .
    .
</root>

我正在使用JqGrid将这些数据填充到表中。代码如下。

datatype : 'xml',
colModel: [ 
  ... 
  {name:'priceOri', index:'priceOri', width:60,xmlmap : "[priceOri]", align:"center"},
  {name:'discount', index:'discount', width:60,xmlmap : "[discount]", align:"center"},
  {name:'price', index:'price', width:60,xmlmap : "[price]", align:"center", editable: true, formatter:discountFmatter},
  ...
 ]

xmlReader: {
    root: "root",
    row: "item",
    repeatitems: false
},  

格式化程序如下所示。

function discountFmatter (cellvalue, options, rowObject)
{
   var price;
   // do calculation based on other cell values in the same column
   //price = priceOri - discount;
   var new_format_value = price;
   return new_format_value
}   

与代码中一样,我需要访问item标记中的其他值以计算该price部分。所以基本上我想访问同一行中的其他单元格值。我怎样才能做到这一点。

我在下面使用了代码片段,但它们的结果是 undefined

rowObject[0]  // undefined
rowObject.priceOri //undefined

谁能告诉我实现此目标的步骤。

更新:我有Tony TomovJqG​​rid版本4.4.0由于我正在开发一个已开发的应用程序,因此无法更改或更新该库的版本。因此,我必须使用相同的JqGrid版本4.4.0进行操作。

似乎Oleg'srowObject instanceof Element ? $(rowObject).attr("priceOri") : rowObject.priceOri正在满足此要求。

更新2 :(因为rowObject.rewards在以下情况下将无法工作)

新的XML具有以下更改的格式,
<item priceOri =“ 100”折扣=“ 10”奖励=“ 20”> </ item>

所以新的格式化程序会像

function discountFmatter (cellvalue, options, rowObject)
{
   var price;
   // do calculation based on other cell values in the same column
   //price = priceOri - discount - rewards;
   var new_format_value = price;
   return new_format_value
}  

请注意,我没有rewards在jQgrid表中显示该值所以我怎么能做到这一点。

奥列格的答案: In case of usage old jqGrid you will have to add new column rewards. You can use hidden: true property in the column. Free jqGrid allow you to use additionalProperties

奥列格

自定义格式化程序内部处理数据时存在一个重要问题的格式与rowObject输入数据的项目相同。因此,必须使用rowObject[0]还是rowObject.priceOri处理JSON数据取决于是否repeatitems: false使用过。以同样的方式,自定义格式器的代码应该是另一种处理JSON数据的代码,该数据使用下一个节点或属性。一个必须使用$(rowObject).find(">priceOri")$(rowObject).attr("priceOri")(最后一个对应于您的数据格式)。

如果另外使用,则事件(为了理解)必须是更复杂的事件loadonce: true仅在处理从服务器加载的数据时必须使用上述表达式接下来的处理(在本地排序,分页或过滤之后)必须使用rowObject.priceOri符号。

在Tony更改了jqGrid的许可协议(请参阅帖子),将产品商业化(请参阅价格)并将jqGrid重命名为“ Guriddo jqGrid JS”之后不久我开发了jqGrid的免费jqGrid fork 自从免费jqGrid开发大约一年以来,我实现了许多功能(从Wiki中描述了最多的功能,每个发布的版本都有自述)。

免费的jqGrid保留了rowObject与以前相同参数格式,以保持与先前版本的兼容性,但是参数option已扩展。它包含rowData具有已解析数据的属性要访问priceOri免费jqGrid中的自定义格式器,可以使用options.rowData.priceOri因此您可以使用

function discountFmatter (cellvalue, options, rowObject) {
    return parseFloat(options.rowData.priceOri) -
           parseFloat(options.rowData.discount);
}

格式化程序的代码在使用时的loadonce: true工作方式相同,即使您将返回数据的格式从XML更改为JSON(例如,以提高代码的性能),它也将保持工作状态。

该演示使用来自GitHub的免费jqGrid的最新代码,并显示

在此处输入图片说明

它使用以下代码

$(function () {
    "use strict";
    function discountFmatter (cellvalue, options, rowObject) {
        return parseFloat(options.rowData.priceOri) -
                parseFloat(options.rowData.discount);
    }

    $("#grid").jqGrid({
        url: "prime.xml",
        datatype: "xml",
        colModel: [ 
            { name: "priceOri", xmlmap: "[priceOri]" },
            { name: "discount", xmlmap: "[discount]" },
            { name: "price", xmlmap: "[price]", editable: true,
                formatter: discountFmatter }
        ],
        cmTemplate: { width: 60, align: "center" },
        iconSet: "fontAwesome",
        xmlReader: {
            root: "root",
            row: "item",
            repeatitems: false
        },
        loadonce: true,
        viewrecords: true,
        rownumbers: true,
        caption: "Stack Overflow Example"
    });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在 Slick 网格自定义单元格格式化程序中应用自定义 Fliter 格式化程序

来自分类Dev

jqGrid:在自定义格式化程序中使用预定义的格式化程序

来自分类Dev

仅根据其他数据条件格式化空白单元格

来自分类Dev

Google表格-基于其他表格中单元格的值的条件格式-自定义公式

来自分类Dev

如何在jqgrid中获取行的格式化单元格值

来自分类Dev

jqGrid中的自定义格式化程序,该格式化程序调用jQuery函数

来自分类Dev

在JQGrid中具有用于日期字段的自定义格式化程序

来自分类Dev

jqgrid中的自定义格式化程序调用不起作用

来自分类Dev

访问heightForRowAtIndexPath中的自定义单元格属性

来自分类Dev

访问自定义单元格中的标签值

来自分类Dev

Google表格条件格式自定义公式:如果当前单元格为空,但其他单元格不为空

来自分类Dev

Google表格条件格式自定义公式:如果当前单元格为空,但其他单元格不为空

来自分类Dev

在这种情况下,如何使用自定义tableView单元格处理可重复使用的单元格(在代码中无法从其他位置更改单元格背景色)

来自分类Dev

根据其他单元格的值有条件地格式化单词

来自分类Dev

如何在自定义工具提示格式化程序中自动格式化日期?

来自分类Dev

Swift-如何从单元格内单击的UIImageView上的自定义UITableViewCell获取行数据

来自分类Dev

JQGrid自定义格式化程序不起作用

来自分类Dev

排序或过滤后丢失的免费jqgrid自定义格式化程序

来自分类Dev

jqGrid自定义格式化程序和工具栏过滤

来自分类Dev

在使用jqGrid进行排序功能之后应用自定义格式化程序

来自分类Dev

JQGrid 自定义格式化程序按钮在分页后消失

来自分类Dev

自定义UITableViewCell中的UITextFields文本在滚动时出现在其他单元格中

来自分类Dev

自定义UITableViewCell中的UITextFields文本在滚动时出现在其他单元格中

来自分类Dev

将自定义功能复制到其他单元格(更改活动单元格)

来自分类Dev

如何在Python日志格式化程序中添加自定义参数?

来自分类Dev

如何在jboss日志记录的模式格式化程序中自定义时间戳

来自分类Dev

Xamarin形成自定义单元格货币格式?

来自分类Dev

自定义格式/修改单元格列Excel

来自分类Dev

取决于单元格值的自定义格式

Related 相关文章

  1. 1

    如何在 Slick 网格自定义单元格格式化程序中应用自定义 Fliter 格式化程序

  2. 2

    jqGrid:在自定义格式化程序中使用预定义的格式化程序

  3. 3

    仅根据其他数据条件格式化空白单元格

  4. 4

    Google表格-基于其他表格中单元格的值的条件格式-自定义公式

  5. 5

    如何在jqgrid中获取行的格式化单元格值

  6. 6

    jqGrid中的自定义格式化程序,该格式化程序调用jQuery函数

  7. 7

    在JQGrid中具有用于日期字段的自定义格式化程序

  8. 8

    jqgrid中的自定义格式化程序调用不起作用

  9. 9

    访问heightForRowAtIndexPath中的自定义单元格属性

  10. 10

    访问自定义单元格中的标签值

  11. 11

    Google表格条件格式自定义公式:如果当前单元格为空,但其他单元格不为空

  12. 12

    Google表格条件格式自定义公式:如果当前单元格为空,但其他单元格不为空

  13. 13

    在这种情况下,如何使用自定义tableView单元格处理可重复使用的单元格(在代码中无法从其他位置更改单元格背景色)

  14. 14

    根据其他单元格的值有条件地格式化单词

  15. 15

    如何在自定义工具提示格式化程序中自动格式化日期?

  16. 16

    Swift-如何从单元格内单击的UIImageView上的自定义UITableViewCell获取行数据

  17. 17

    JQGrid自定义格式化程序不起作用

  18. 18

    排序或过滤后丢失的免费jqgrid自定义格式化程序

  19. 19

    jqGrid自定义格式化程序和工具栏过滤

  20. 20

    在使用jqGrid进行排序功能之后应用自定义格式化程序

  21. 21

    JQGrid 自定义格式化程序按钮在分页后消失

  22. 22

    自定义UITableViewCell中的UITextFields文本在滚动时出现在其他单元格中

  23. 23

    自定义UITableViewCell中的UITextFields文本在滚动时出现在其他单元格中

  24. 24

    将自定义功能复制到其他单元格(更改活动单元格)

  25. 25

    如何在Python日志格式化程序中添加自定义参数?

  26. 26

    如何在jboss日志记录的模式格式化程序中自定义时间戳

  27. 27

    Xamarin形成自定义单元格货币格式?

  28. 28

    自定义格式/修改单元格列Excel

  29. 29

    取决于单元格值的自定义格式

热门标签

归档