JQGRID:在网格中为所有列添加排序选项

时间:2012-10-15 05:05:41

标签: javascript jqgrid jqgrid-php

我需要在网格中为所有列添加排序选项('事件键','日期','状态','事件否','FF死亡','OTH死亡','财产损失','连续损失','火灾原因')分开。我试过但它没有用,请在我的代码中修复排序并回答你是否对它有所了解。

  showLoading();
        $("#list1").jqGrid({
            type: 'POST',
            url: 'include/LocationService.php?run=gridForCongressionalDistrict&address='+$('#address').val()+'&radius='+$('#radius').val()+'&query='+encodeURIComponent(query_condition),
            datatype: 'json',
            colNames:['Incident key','Date','State','Incident no','FF death', 'OTH death','Property Loss','Cont Loss','Fire Cause'],
            colModel :[ 
            {
                name:'a.INC_KEY', 
                index:'a.INC_KEY',
                width: 220,
               hidden: true,
                editrules: {
                   edithidden:true
               },
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            }, 

            {
                name:'a.INC_DATE', 
                index:'a.INC_DATE',
                width: 100,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            }, 

            {
                name:'a.INC_NO', 
                index:'a.INC_NO',
                width: 100,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }

            }, 

            {
                name:'a.STATE', 
                index:'a.STATE',
                width: 100,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            }, 

            {
                name:'a.FF_DEATH', 
                index:'a.FF_DEATH',
                width: 80,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            }, 

            {
                name:'a.OTH_DEATH', 
                index:'a.OTH_DEATH',
                width:80,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            },

            {
                name:'a.PROP_LOSS', 
                index:'a.PROP_LOSS',
                width: 80,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            },

            {
                name:'a.CONT_LOSS', 
                index:'a.CONT_LOSS',
                width: 80,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            },

            {
                name:'a.CAUSE_CODE_DESC', 
                index:'a.CAUSE_CODE_DESC',
                width: 240,
                searchoptions: {
                    sopt: ['eq', 'ne','cn']
                }
            },
            ],
            pager: '#pager',
            rowNum: 500,
            rowList:[500,100,20],
            sortname: 'INC_KEY',
            sortorder: 'desc',
            viewrecords: true,
            height: 400,
            width: 800, 
            shrinkToFit: false,
            gridview: true,
            caption: 'Reports',
            loadComplete: function(data){
                console.log('load complete'); 
                pin_data = data;
                viewReset = 'true';
                onSuccessFunction(data,'true');
            }
        });
        jQuery("#list1").jqGrid('navGrid','#pager',{
            edit:false,
            add:false,
            del:false
        });

        jQuery("#list1").jqGrid("clearGridData", true).setGridParam({
            url : 'include/LocationService.php?run=gridForCongressionalDistrict&address='+$('#address').val()+'&radius='+$('#radius').val()+'&query'+encodeURIComponent(query_condition),
            loadComplete: function(data){
                console.log('load complete');
                onSuccessFunction(data, 'true');  
            }
        }).trigger("reloadGrid")

        $("#error").html('<div class="error1"></div>');

    }
}  
)
})

2 个答案:

答案 0 :(得分:1)

首先回答您的主要问题:您可以使用cmTemplate选项(有关详细信息,请参阅the answer),该选项可用于更改colModel中所有列的默认设置。例如,

cmTemplate: { searchoptions: { sopt: ['eq', 'ne','cn'] } }

此外,我建议您将有关参数的信息从URL移至postData。所以

url: 'include/LocationService.php?run=gridForCongressionalDistrict&address=' +
        $('#address').val() + '&radius=' + $('#radius').val() +
        '&query=' + encodeURIComponent(query_condition),

url: 'include/LocationService.php',
postData: {
    run: 'gridForCongressionalDistrict',
    address: function () {
        return $('#address').val();
    },
    radius: function () {
        return $('#radius').val();
    },
    query: query_condition
}

如果每次向服务器发出请求时都会重新计算值addressradius,并且您的当前值为$('#address').val()和{{ 1}}发送到服务器。

答案 1 :(得分:0)

{

searchoptions: { sopt: ['eq', 'ne','cn'] } }

url: 'include:yoursphp page.php?run=yoursfunctionsname&yoursaddingfunctions name=' +
        $('#yours varianle name').val() + sort=' + $('variable name').val() +
        '&query=' + encodeURIComponent(query_condition),

url name:"";

post data
{
}
return result():

或使用排序查询对事物进行排序并解析jgrid中的值。