【问题标题】:Sorting not working in Jqgrid after using a custom formatter使用自定义格式化程序后排序在 Jqgrid 中不起作用
【发布时间】:2014-09-18 17:03:23
【问题描述】:

我正在使用 jqgrid,数据类型为 json,值从另一个 url 检索,

     colModel: [
    { name: "Details", width: 200,classes: 'pointer wrap',sortable: false,
         formatter: function myFormatter(cellvalue, options, rowObject){
         number=rowObject.properties.number;
         name= rowObject.properties.shortName;
          fullDetails= '<strong> '+name+ '</strong> </br>[<a id="pointer"  title="Click to  search" href= http://google.com/search?search='+number+' target='+number+'>'+number+'</a>]';
         return fullDetails;

         }
        },
   { name:"name",jsonmap: "properties.shortName", width: 200,classes: 'pointer wrap',hidden:true},
    {name:"number", jsonmap: "properties.number", width: 50 ,sortable: true,hidden:true},
    { name:"date",jsonmap: "properties.date", width: 80,hidden :false}

 ],
    pager: "#pager",
    //rowNum: 20,
    rowNum: 100,
    rowList: [10, 20, 30],
    sortname: "matter",
    sortorder: 'asc',
    viewrecords: true,
    gridview: true,
    loadonce : true,
    autoencode: true,
    height:'auto',
    hidegrid: false,

    caption: "Details",
    jsonReader : {
        repeatitems: false,

        root: "properties"

       }

加载正常 但是点击列标题后进行排序

TypeError:rowObject.properties 未定义 number=rowObject.properties.number; 显示 可能出了什么问题? 可以解决什么问题? 下面给出的是样本数据

             [
                {"properties":
                   {"date":1409327760,"name":"agent M","number":"4117859","shortName":"AM"},"children":null,"valId":"225","objectType":"VAL"},
                {"properties":
                    {"date":14093278860,"name":"agent x","number":"97893783","shortName":"AX"},"children":null,"valId":"191","objectType":"VAL"}
        ]

【问题讨论】:

  • 对不起,我错过了,对此我感到非常抱歉

标签: javascript jquery json jqgrid jqgrid-formatter


【解决方案1】:

您不应使用name: "properties.number" 等列名。您应该查看name 属性的值,就像将用作变量名称(或属性名称)的值和id 属性值的一部分一样。

loadComplete 内的行 jQuery("#list").jqGrid('setGridParam',{datatype:'local'}); 通常是一个错误。如果您从服务器加载数据并使用datatype: "json",那么您应该使用loadonce: true

您没有发布您使用的datatype,也没有发布输入数据的示例(2 行输入数据就足够了)。 jsonReader 的值 repeatitems: true 似乎值得怀疑。不过我可以假设您可以使用jsonmap 属性来读取原始数据(从服务器返回):

{ name: "number", jsonmap: "properties.number", width: 50, hidden: true}

the demo

【讨论】:

  • 感谢您的建议,我非常感谢,但不幸的是,这些无助于实现我所需的结果问题仍然存在 typeError: rowObject.properties is undefined number=rowObject.properties.number
  • @MMG:您应该包含更多关于您所做工作的详细信息(datatype 以及至少两行网格的输入数据示例)。
  • 我在问题的第一行中提到了我的数据类型为 JSON,至于数据我没有找到添加示例数据的原因。我也可以添加示例数据跨度>
  • @MMG:你使用的输入数据的例子真的很需要
  • 我也添加了请看@Oleg
猜你喜欢
  • 2015-12-27
  • 1970-01-01
  • 2012-06-17
  • 1970-01-01
  • 2014-02-10
  • 1970-01-01
  • 2012-05-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多