jqGrid-将比率字段格式化为百分比值

jqGrid-将比率字段格式化为百分比值,jqgrid,percentage,formatter,Jqgrid,Percentage,Formatter,我的服务器代码以比率值的形式传输某些列,即0.0到1.0。我需要格式化并将其编辑为百分比。我希望在JavaScript端完成,而不修改服务器端。因此,如果我添加一个自定义格式化程序,将该值乘以100,那么display将按预期工作。此外,当我点击编辑按钮时,内联编辑框也会以百分比的形式显示值。当我保存时,问题就开始了-该值再次使用formatter进行转换,得到10000之类的值。好的,我需要对称性,所以我创造了一个不可原谅的物质,它只需要将值除以100。但这也不起作用-现在编辑控件将其显示为一

我的服务器代码以比率值的形式传输某些列,即0.0到1.0。我需要格式化并将其编辑为百分比。我希望在JavaScript端完成,而不修改服务器端。因此,如果我添加一个自定义格式化程序,将该值乘以100,那么display将按预期工作。此外,当我点击编辑按钮时,内联编辑框也会以百分比的形式显示值。当我保存时,问题就开始了-该值再次使用formatter进行转换,得到10000之类的值。好的,我需要对称性,所以我创造了一个不可原谅的物质,它只需要将值除以100。但这也不起作用-现在编辑控件将其显示为一个比率,这不是我想要的(尽管现在保存可以正常工作)

有没有办法不更改服务器代码?

您可以跳过不可更改的内容而选择自定义编辑类型,只需在您的
colModel
中使用它即可:

{ ..., edittype: 'custom', editoptions: { custom_element: function(value, options) { return $('<input type="text" value="' + value + '"/>'); }, custom_value: function(element){ return parseFloat(element.val())/100; }  }}
{…,edittype:'custom',editoptions:{custom_元素:函数(值,选项){return$('');},custom_值:函数(元素){return parseFloat(element.val())/100;}}

要完全支持自定义类型的数据(如0.0到1.0)显示为包含百分比值的编辑和搜索,您必须实现:

  • 实现
    formatter
    以自定义方式在网格中显示数据
  • 实施
    unformat
    以允许从数据的“可视化表示”访问数据。jqGrid将在某些情况下使用该方法(例如在表单编辑的初始化阶段)
  • 定义
    sorttype
    ,它可以是一些兼容的数据类型,如
    'number'
    或自定义排序函数
  • 使用
    edittype:'custom'
    并实现
    editoptions
    custom\u元素和
    custom\u值(请参阅)
  • 使用
    键入:“自定义”
    并实现
    编辑选项的
    自定义元素
    自定义值
  • 在某些情况下,可以跳过步骤中的一个,但在常见情况下,您必须考虑所有步骤的实现。您应该验证解决方案中仍然没有实现上述步骤


    是对来自和的演示的修改。演示并不是针对你的直接问题。它展示了为什么以及如何在jqGrid中完全实现自定义控件。表单编辑的功能在演示中没有完全发挥作用,只是因为没有实现服务器部件。如果需要,可以使用显示如何在jqGrid中实现本地表单编辑的方法。我不想让代码变得更复杂,因为需要显示演示的主要目的。

    感谢您提供如此详细的答案。