使用jqgrid按列值排序

时间:2017-09-13 12:52:12

标签: jquery jqgrid

我希望对包含键值对数据的列进行排序。目前我已经使用基于密钥的自定义排序函数实现排序,即Id。在这里,我想要根据不是Id的值进行排序。我怎样才能实现这一目标?任何人都可以帮我解决这个问题吗?

请找到以下代码供您参考。

jQuery("#list2").jqGrid({
    url: '/LocaleRate/LocaleRates',    
    mtype: 'GET',
    datatype: "json",
    colModel: [
        { name: 'ID', hidden: true },
        {
            name: 'SourceLocaleId', index: 'SourceLocaleId', edittype: "select", formatter: 'select',
            editoptions: { value: newLocalelist },
            sorttype: function (value, rowObject) {
              return  rowObject.SourceLocaleId;
            },

        },
        {
            name: 'LocaleId', index: 'LocaleId', edittype: "select", formatter: 'select', editoptions: { value: newLocalelist },
            sorttype: function (value, rowObject) {
                return rowObject.LocaleId;
            },
        }]    )}

1 个答案:

答案 0 :(得分:0)

我已经在Sorttype Custom函数中发送了cellvalue,即Id,它将返回相应的值&然后JQGrid将执行排序。

请参阅以下步骤供您参考:

 jQuery("#list2").jqGrid({

    url: '/LocaleRate/LocaleRates',   
    mtype: 'GET',
    datatype: "json",
    colModel: [
        { name: 'ID', hidden: true },
        {
            name: 'SourceLocaleId', label: 'Source Locale', index: 'SourceLocaleId',  edittype: "select", formatter: 'select', editoptions: { value: LoadData(LocaleURL) },
            editrules: { required: true },
            sorttype: function (value) {
                return sortData(value, 'SourceLocaleId');
            },
        },
        {
            name: 'LocaleId', label: 'Locale', index: 'LocaleId', width: 130, align: "left", editable: true, edittype: "select", formatter: 'select', editoptions: { value: LoadData(LocaleURL) }, editrules: { required: true },
            sorttype: function (value) {
                return sortData(value, 'LocaleId');
            },
        }]
   })

请按以下方式查找SortData函数:

function sortData(key, columnName) {

    var textvalue, getData = LocaleData ;

    for (var i = 0; i < getData.length; i++) {
        if (getData[i].Value == key) {
            textvalue = getData[i].Text;
        }
    }
    return textvalue;
}

注意: LocaleData包含键值对数据。在这里,我将匹配键与值返回。

相关问题