jqGrid prmNames sidx

时间:2014-06-14 22:01:15

标签: jquery sorting jqgrid

jqGrid如何确定最初填充prmNamess的sidx的内容(首次加载网格时)?我的网格有5列:

colNames: ['ID', 'Meta Name', 'Meta Value', 'Meta Owner ID', 'Comment']

我的POST变量中发送了Meta Owner字段......

  • $ _ POST ['sidx'] ='metaownerid + asc,+'
  • $ _ POST ['sord'] ='asc'

此外,当sidx中的订单自动发送时,为什么订单会包含在sord中?以这种方式接收数据并不是什么大不了的事情,但可能会更改发送的内容然后在PHP中切断字符串。我希望sidx仅包含字段 - 无订单。

是否有一个逻辑上的原因,它开箱即用,就像我失踪一样?

感谢。

===编辑1 ===
一些额外的信息...

jQuery('#grid').jqGrid({
    url: 'data.php', 
    editurl: "data.php", 
    mtype: 'POST', 
    datatype: 'json', 

    colModel: 
    [
        {
            name: 'metaid', 
            index: 'metaid', 
            editable: true, 
            editoptions: 
            {
                disabled: true, 
                size: 27
            }, 
            hidden: false, 
            sorttype: 'int', 
            width: 50
        }, 

        {
            name: 'metaname', 
            index: 'metaname', 
            editable: true, 
            sorttype: 'text', 
            editoptions: { size: 27 }, 
        }, 

        {
            name: 'metavalue', 
            index: 'metavalue', 
            editable: true, 
            editoptions: { size: 27 }, 
            sorttype: 'text'
        }, 

        {
            name: 'metaownerid', 
            index: 'metaownerid', 
            editable: true, 
            edittype: 'select', 
            editoptions:
            {
                multiple: false, 
                value: '<?php echo $ownerSelectString; ?>'
            }
        }, 

        {
            name: 'comment', 
            index: 'comment', 
            editable: true, 
            editoptions: { size: 27 }, 
            sorttype: 'text'
        }
    ], 

    prmNames:
    {
        oper: 'action', 
        addoper: 'insert', 
        editoper: 'update', 
        deloper: 'delete'
    },
});

我没有看到我的任何代码都影响POST中发送的数据。除了两个项目之外,我没有任何JavaScript,例如用于控制groupingView的选择菜单,以及在双击行时显示表单编辑对话框。

===编辑2 ===
PHP:return print_r($_POST);

...

Array
(
    [_search] => false
    [nd] => 1402930981946
    [rows] => 30
    [page] => 1
    [sidx] => metaownerid asc, 
    [sord] => asc
)

1 个答案:

答案 0 :(得分:0)

groupinggroupView的组合是造成POST变量的罪魁祸首。一旦我通过各种测试探索了那些jqGrid选项,我就来了:

grouping: true, 
groupingView: 
{
//  groupField: '', 
    groupColumnShow: [true], 
    groupText: ['<b>{0}</b>'], 
    groupCollapse: false, 
//  groupOrder: '', 
    groupSummary: [true], 
    groupDataSorted: true
} 

这些设置产生了更理想的POST变量,一旦我掌握了提交的内容,在什么情况下我能够处理PHP中的剩余操作。我现在有基本的服务器端分页。

值得注意的是,我故意将groupFieldgroupOrder留在我的代码中。

感谢您的协助,@ Oleg。