来自jqgrid的空order_by字段导致tastypie api失败

时间:2012-07-06 21:33:58

标签: jqgrid tastypie

我正在使用jqgrid来访问tastypie API。我已将sidx更改为“order_by”以匹配默认的tastypie API。

Jqgrid传递order_by(以前的sidx)get参数,无论它是否按某种方式排序。如果它没有排序,它只是传递一个空字符串作为排序标准。 tastypie在一个空字符串上吓坏了,说“没有名为''的字段

我看到的方式有两种选择:

  1. 让jqgrid停止发送order_by参数,除非需要
  2. 让tastypie忽略空的order_by字符串......
  3. 关于如何做这两件事的任何建议?

1 个答案:

答案 0 :(得分:1)

我不确定,我完全理解这个问题。首先,要将sidx重命名为order_by,可以使用

prmNames: {sort: "order_by"}

如果您永远不会发送sidxorder_by,您可以使用

prmNames: {sort: null}

您可以在动态更改prmNames.sort时实施一些方案。您可以使用jqGrid callbacksevents

控制将发送到服务器的参数列表的另一种方法是serializeGridData回调。例如

serializeGridData: function (postData) {
    var myPostData = $.extend({}, postData); // make a copy of the input parameter
    if (myPostData.sidx.length === 0) { // or myPostData.order_by.length
        delete myPostData.sidx;
    }
    return myPostData;
}

有关其他示例,请参阅the answer