gpt4 book ai didi

jqgrid - 如何在 jqGrid 中创建非数据库列?

转载 作者:行者123 更新时间:2023-12-05 00:37:34 27 4
gpt4 key购买 nike

我想计算总计 无需在 calctotal.php 中执行即可即时完成。从本质上讲,这是一个计算列。我想使用一些事件,如 afterInsertRow ,但即使没有事件,它也会将列数据移动一格,因为 XML 文件只有 3 列而不是四列。所以我的 总计 列现在包含来自 的数据备注 我确实在 php 文件中添加了一个假列,但我为什么要这样做呢?谢谢

url:'./calctotal',
datatype: 'xml',
mtype: 'GET',
colNames:['Inv No', 'Amount','Tax','Total'm 'Notes'],
colModel :[
{name:'invid', index:'invid', width:55},
{name:'amount', editable: false, index:'amount', width:80, align:'right'},
{name:'tax', index:'tax', width:80, align:'right'},
**{name:'total', index:'total', width:80, align:'right'},**
{name:'notes', index:'notes', width:80, align:'left'}

],

最佳答案

在 jqGrid 中实现“虚拟列”的最佳方法是使用 custom formatter .例如

{name:'amount',index:'amount',width:70, formatter:'currency', align:'right'},
{name:'tax',index:'tax',width:50, formatter:'currency', align:'right'},
{name:'total',index:'total',width:60, align:'right',
formatter:function(cellvalue, options, rowObject) {
var amount = parseInt(rowObject.amount,10),
tax = parseInt(rowObject.tax,10);
return $.fmatter.util.NumberFormat(amount+tax,$.jgrid.formatter.currency);
}}

使用自定义格式化程序的主要缺点是您在内部使用 make full 格式化。方法的调用 $.fmatter.util.NumberFormat可以帮助我们简化工作。

如果您使用远程数据类型( datatype: 'xml'datatype: 'json' ),服务器负责数据排序。因此,服务器不仅应该能够对“真实”数据字段的数据进行排序,还应该能够对“虚拟”列的数据进行排序。我们使用 index:'total'以上。因此,如果用户单击“总计”列的标题, sidx将发送到服务器的参数为 total .所以服务器应该能够产生按 total 排序的数据。 .

如果您使用本地数据,您可以使用 sorttype作为实现排序的函数:
{name:'amount',index:'amount',width:70, formatter:'currency', sorttype:'number',
align:'right'},
{name:'tax',index:'tax',width:50, formatter:'currency', sorttype:'number',
align:'right'},
{name:'total',index:'total',width:60, align:'right',
formatter:function(cellvalue, options, rowObject) {
var amount = parseInt(rowObject.amount,10),
tax = parseInt(rowObject.tax,10);
return $.fmatter.util.NumberFormat(amount+tax,$.jgrid.formatter.currency);
},
sorttype:function(cellvalue, rowObject) {// like for sorttype:'number',
var amount = parseInt(rowObject.amount,10),
tax = parseInt(rowObject.tax,10);
return amount+tax;
}}

看演示 here .

关于jqgrid - 如何在 jqGrid 中创建非数据库列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6686673/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com