Я ищу, чтобы найти лучший способ разрешить пользователям выбирать показывать ВСЕ записи в jqGrid.Я знаю, что значение -1, передаваемое для параметра строки, обозначает ВСЕ, но я хочу, чтобы слово «ВСЕ», а не -1, появлялось в элементе выбора rowList, т.е.rowList: [15, 50, 100, 'ALL'].
Я передаю запрос сетки в веб-сервис, который принимает int для "строк", и я пытаюсь найти, как и когда яследует изменить выбранное пользователем значение «ВСЕ» на -1, прежде чем оно будет отправлено в веб-службу.
Ниже приведен мой очищенный код сетки.Я пробовал несколько различных блоков кода перед моим $ .ajax в функции типа данных.Но большинству попыток казалось, что я должен делать это самым запутанным способом, каким только мог.Например,
datatype: function(postdata) {
if ($("#gridTableAssets").jqGrid('getGridParam', 'rowNum') == 'ALL') {
$("#gridTableAssets").appendPostData({ "rows": -1, "page": 1 });
}
$.ajax({...
Но выполнение этого, казалось, приводило к тому, что фактический "page" GridParam обнулялся при последующих действиях сетки, заставляя меня обрабатывать это в других местах.Просто кажется, что это что-то, что часто делается там и имеет чистый способ сделать это.
Код очищенной сетки:
$("#gridTableAssets").jqGrid({
datatype: function(postdata) {
$.ajax({
url: "/Service/Repository.asmx/GetAssets",
data: JSON.stringify(postdata),
type: 'POST',
contentType: "application/json; charset=utf-8",
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert('error');
},
success: function(msg) {
var assetsGrid = $("#gridTableAssets")[0];
assetsGrid.addJSONData(JSON.parse(msg));
...
}
});
},
...
pager: $('#pagerAssets'),
rowNum: 15,
rowList: [15, 50, 100, 'ALL'],
...
onPaging: function(index, colindex, sortorder) {
SessionKeepAlive();
}
});
А вотвеб-сервис
[WebMethod]
public string GetAssetsOfAssetStructure(bool _search, int rows, int page,
string sidx, string sord, string filters)