gpt4 book ai didi

jquery - jqGrid 在第一次加载时排序

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:51 26 4
gpt4 key购买 nike

我的网格有以下代码(我在与数据源相同的目录中使用 XML 文件)。

var handsetGrid = $("#products").jqGrid({
url: 'catalog.xml',
datatype: "xml",
colNames:["SKU", "Name", "Brand", "Description", "Metadescription"],
colModel:[
{name:"sku", key: true, index:"sku", width:100, xmlmap:"sku", align:"right", sortable:true},
{name:"Name", index:"Name", width:300, sortable:true, xmlmap:">name>en"},
{name:"Brand", index:"Brand", width:100, sortable:true, xmlmap:"brand"},
{name:"description", index:"description", width:400, classes:"desc1", xmlmap:"description1>en", formatter:descFormatter},
{name:"metadescriptionEn", index:"metadescriptionEn", width:400, classes:"desc1", xmlmap:"metadescription>en", formatter:descFormatter}
],
width: 1300,
height:480,
shrinkToFit:false,
rownumbers: true,
scroll: true,
rowNum:22,
ignoreCase: true,
viewrecords: true,
sortname: "Name",
sortorder: "asc",
sortable: true,
loadonce: true,
pager: "#pager",
caption: "Handsets",
xmlReader: {
root: "products",
row: "product",
repeatitems: false,
id: "sku"
},
loadComplete: function(data) {
// test whether we have initial loadind and the "data" has XML type
if (data.nodeType) {
myXMLdata = data; // save original XML data
}
},
subGrid: true,
subGridRowExpanded: function(subgrid_id, row_id) {
var subgrid_table_id;
subgrid_table_id = subgrid_id + "_t";
jQuery("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table>");
jQuery("#" + subgrid_table_id).jqGrid( {
datatype:'xmlstring',
datastr: myXMLdata,
colNames: [ 'Id', 'Name', 'Duration', 'Price'],
colModel: [
{name:"ppid",index:"ppid",width:80, xmlmap:">id"},
{name:"ppname",index:"ppname",width:150, xmlmap:">name>en"},
{name:"ppduration",index:"ppduration",width:85, xmlmap:">priceperduration>duration>en", formatter: durationFormatter},
{name:"ppprice",index:"ppprice",width:80, xmlmap:">priceperduration>price", formatter: priceFormatter}
],
gridview: true,
xmlReader: {
root: "products>product:has('sku:contains('"+row_id+"')')>priceplansavailable",
row: "priceplan",
repeatitems: false
}
});
}

});

$("#handsets").jqGrid('navGrid','#pager',{edit:false,add:false,del:false,search:false,refresh:false});
$("#handsets").jqGrid('navButtonAdd',"#pager",{caption:"Search Bar", title:"Toggle Search Toolbar", buttonicon :'ui-icon-pin-s',
onClickButton:function(){
handsetGrid[0].toggleToolbar();
}
});

$("#handsets").jqGrid('navButtonAdd',"#pager",{caption:"Clear", title:"Clear Search", buttonicon :'ui-icon-refresh',
onClickButton:function(){
handsetGrid[0].clearToolbar();
}
});

$("#handsets").jqGrid('filterToolbar', {defaultSearch:'cn'});

我的问题是,当我加载网格时,我希望它已经针对列进行了排序:名称。我希望使用这三个参数:

  • sortname: "姓名",
  • 排序顺序:“升序”,
  • 可排序:正确,

点击列后它正常工作,只有第一个排序不起作用(加载页面后)。

最佳答案

如果您使用“xml”或“json”等远程数据类型,服务器 负责提供排序 数据。

如果你不能这样做,你可以触发 loadComplete 里面的 reloadGrid,但是你应该使用 setTimeout JavaScript 方法来允许完成第一个加载过程。

要没有递归,您应该将 "reloadGrid" 放在 loadCompleteif (data.nodeType) block 中。

更新: Free jqGrid有选项 forceClientSorting: true,它解决了这个问题。该选项允许在显示第一页之前强制对数据进行排序和过滤(如果设置了可选的 postData.filters)。

关于jquery - jqGrid 在第一次加载时排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5619395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com