У меня есть сетка, которая получает 2 строки от обработчика, я пытаюсь идентифицировать ключевой столбец, здесь я переименовал его с id на xqz и rr45. Когда я редактирую ячейку, мой дескриптор получает идентификатор 1, который, как представляется, является номером журнала, а не фактическим идентификатором.jqGrid отправляет неправильный идентификатор на ячейку edit
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jQgrid - ASPX</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<!--<script src="http://asp2d:1138/jquery-1.8.3.js"></script>-->
<!--<script src="http://asp2d:1138/jquery-ui-1.9.2.custom.js"></script>-->
<script type="text/javascript" src="http://asp2d:1138/grid.locale-en.js"></script>
<script type="text/javascript" src="http://asp2d:1138/jquery.jqGrid.min.js"></script>
<link rel="stylesheet" type="text/css" media="screen" href="http://asp2d:1138/jquery-ui-1.9.2.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="http://asp2d:1138/ui.jqgrid.css" />
<script>
$(function() {
$("#list").jqGrid({
url: "/capplanning/SitePages/jsonhandler.aspx?wherefrom=Category One",
datatype: "json",
mtype: "GET",
colNames: ["xyz", "category_type", "category_value"],
colModel: [{
name: "rr45",
sortable: true,
key: true,
editable: true,
hidden: true,
edithidden: false
}, {
name: "category_type",
sortable: true,
editable: false
}, {
name: "category_value",
sortable: true,
editable: true
}],
pager: "#pager",
caption: "Category One",
loadonce: "true",
height: "100%",
cellEdit: true,
cellsubmit: "remote",
cellurl: "/capplanning/SitePages/jsonhandler.aspx?editedgrid=editcategory1",
autowidth: true,
rowNum: 9999,
gridview: true,
multiselect: false
/*rowList:[10,15,20]*/
});
$("#list").jqGrid('filterToolbar', {
stringResult: true,
searchOnEnter: false
});
$("#list").jqGrid('navGrid', '#pager', {
edit: false,
add: true,
del: true
});
$("#list").jqGrid('navButtonAdd', '#pager', {
caption: '',
title: 'Show/Hide Filters',
buttonicon: 'ui-icon-arrowthickstop-1-e',
onClickButton: function() {
this.toggleToolbar();
if ($.isFunction(this.p._complete)) {
if ($('.ui-search-toolbar', this.grid.hDiv).is(':visible')) {
$('.ui-search-toolbar', this.grid.fhDiv).show();
} else {
$('.ui-search-toolbar', this.grid.fhDiv).hide();
}
this.p._complete.call(this);
fixPositionsOfFrozenDivs.call(this);
}
}
});
$("#list")[0].toggleToolbar();
});
</script>
</head>
<body>
<table id="list">
<tr>
<td></td>
</tr>
</table>
<div id="pager"></div>
</body>
</html>
JSON
{
"rows": [{
"id": "2",
"cell": ["2", "CategoryOne", "Maintenancedd"]
}, {
"id": "3",
"cell": ["3", "CategoryOne", "Maintenance"]
}, {
"id": "4",
"cell": ["4", "CategoryOne", "New Growth"]
}]
}
В моем обработчике редактирования он приходит с
Key = category_value Value = Maintenance
Key = id Value = **1**
Key = oper Value = edit
** Какая версия jqGrid вы используете? ** Вы входные данные содержат 'id' свойство отдельно. В случае, я бы рекомендовал вам попробовать ** удалить 'key: true' ** из' 'rr45" '. Например, версия 4.7 имела соответствующую ошибку. – Oleg
ничего не работает, нет комбинации удаления ключа: true или переименование столбцов. Я думаю, что использую 4.8.2. Извините, я не слишком уверен, как проверить версию. Каталог с jqgrid называется Guriddo_jqGrid_JS_4.8.2. – Demosthenes
Олег, если вы знаете, как мне передать другой столбец на редактирование ячеек, а также идентификатор, я мог бы разместить свой собственный столбец идентификаторов, не кажется, что это хороший ответ на эту проблему в любом месте. – Demosthenes