使用 jqgrid 按列值排序
Sorting by column value using 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;
},
}] )}
我已经发送了单元格值,即 Sorttype 自定义函数中的 Id,它将 returns 各自的值,然后 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 包含键值对数据。这里我把key和值returns匹配起来了。
我想对包含键值对数据的列进行排序。目前,我已经使用基于键(即 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;
},
}] )}
我已经发送了单元格值,即 Sorttype 自定义函数中的 Id,它将 returns 各自的值,然后 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 包含键值对数据。这里我把key和值returns匹配起来了。