通过未加载到网格中的数据对jqgrid进行排序?

时间:2010-09-15 17:52:31

标签: php jquery jqgrid

使用jqgrid时,您可以通过以下方式设置select语句:

$grid->SelectCommand = $query

但是,您无法在此处设置ORDER BY

jqgrid允许您对任何列上的网格进行排序。

如果我的数据库表有一个名为“cost”的列,我希望我的网格按成本排序,但不显示成本。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:2)

您可以在html页面上添加一个额外的元素,例如复选框或带选项的选项,允许用户选择排序顺序。要阅读有关用户选择的信息,您可以使用

var addSortInfo = jQuery("#orderByCost").is(':checked');

var addSortInfo = jQuery("#selectList option:selected").val();

然后,您可以使用jqGrid的postData选项向服务器发送包含所有请求的其他数据。 postData参数的值可以是{mySortInfo: addSortInfo}之类的对象,其中“mySortInfo”是您将在服务器端看到的附加参数的名称以及sidx,{{1}和每个请求的其他标准参数。在HTTP GET请求的情况下,来自page的数据将被附加到服务器URL,并且在HTTP POST的情况下,数据将被添加到请求主体。

您还可以使用postData内的功能。您可以在How to filter the jqGrid data NOT using the built in search/filter box中阅读此方法的优点以获取更多信息。

答案 1 :(得分:1)

在您的数据库选择语句中,您可以根据成本的顺序选择要返回的数据,或者您可以在jqgrid中包含成本作为列,并将其设置为隐藏并按成本列排序。

相关问题