【发布时间】:2010-09-15 17:52:30
【问题描述】:
使用 jqgrid 时,您可以通过以下方式设置 select 语句:
$grid->SelectCommand = $query
但是你不能在这里设置ORDER BY。
jqgrid 允许您对任何列上的网格进行排序。
如果我的数据库表有一个名为“成本”的列,并且我希望我的网格按成本排序,但不显示成本。有没有办法做到这一点?
【问题讨论】:
使用 jqgrid 时,您可以通过以下方式设置 select 语句:
$grid->SelectCommand = $query
但是你不能在这里设置ORDER BY。
jqgrid 允许您对任何列上的网格进行排序。
如果我的数据库表有一个名为“成本”的列,并且我希望我的网格按成本排序,但不显示成本。有没有办法做到这一点?
【问题讨论】:
您可以在您的 html 页面上包含一个附加元素,如复选框或带有选项的选择,允许用户选择排序顺序。要阅读有关用户选择的信息,您可以使用
var addSortInfo = jQuery("#orderByCost").is(':checked');
或
var addSortInfo = jQuery("#selectList option:selected").val();
然后您可以使用 jqGrid 的postData 选项将所有请求的附加数据发送到服务器。 postData 参数的值可以是像{mySortInfo: addSortInfo} 这样的对象,其中“mySortInfo”是您将在服务器端看到的附加参数的名称,以及每个请求的sidx、page 和其他标准参数.在 HTTP GET 请求的情况下,来自postData 的数据将附加到服务器 url,而在 HTTP POST 的情况下,数据将被添加到请求正文中。
您还可以使用postData 中的函数。这种方法的优点您可以阅读How to filter the jqGrid data NOT using the built in search/filter box 了解更多信息。
【讨论】:
在您的数据库选择语句中,您可以根据成本排序选择要返回的数据,或者您可以将成本作为列包含在 jqgrid 中并将其设置为隐藏并按成本列排序。
【讨论】: