http://www.trirand.com/blog/jqgrid/jqgrid.html
我有一个有5列的jqgrid,第一列是动作,在第一列我有3个按钮,编辑,保存,取消。当我将数据列表绑定到jqgrid时,我有两个问题...首先,列中的数据被放错了位置,因为第一列有3个按钮,列表中列中的数据被绑定到网格的第一列中,而其他所有列的数据都被放错了位置。
当我单击actions列中的编辑按钮时,网格中的所有行都支持包括actions列在内的内联编辑功能,因此没有用于单击save的选项。
我的jQuery代码:
<script type="text/javascript">
$(function () {
var lastsel;
jQuery("#list").jqGrid({
url: '/Home/GetStudents/',
datatype: 'json',
mtype: 'POST',
colNames: ['Actions', 'StudentID', 'FirstName', 'LastName', 'Email'],
colModel: [
{ name: 'act', index: 'act', width: 75, sortable: false },
{ name: 'StudentID', sortable: false, key: true },
{ name: 'FirstName', key: true },
{ name: 'LastName', sortable: false, key: true },
{ name: 'Email', width: 200, sortable: false, key: true}],
cmTemplate: { align: 'center', editable: true },
pager: '#pager',
width: 750,
rowNum: 15,
rowList: [5, 10, 20, 50],
sortname: 'StudentID',
sortorder: "asc",
viewrecords: true,
caption: ' My First JQgrid',
gridComplete: function () {
var ids = jQuery("#list").jqGrid('getDataIDs');
for (var i = 0; i < ids.length; i++) {
var cl = ids[i];
be = "<input style='height:22px;width:20px;' type='button' value='E' onclick=\"jQuery('#list').editRow('" + cl + "');\" />";
se = "<input style='height:22px;width:20px;' type='button' value='S' onclick=\"jQuery('#list').saveRow('" + cl + "');\" />";
ce = "<input style='height:22px;width:20px;' type='button' value='C' onclick=\"jQuery('#list').restoreRow('" + cl + "');\" />";
jQuery("#list").jqGrid('setRowData', ids[i], { act: be + se + ce });
}
},
editurl: '/Home/About/',
// data: { get_param: selectedDescription },
caption: "jQgrid Sample"
});
jQuery("#list").jqGrid('navGrid', "#prowed2", { edit: false, add: false, del: false });
});
</script>发布于 2012-12-05 15:14:55
您使用的是cmTemplate: { editable: true },所以应该在act'列的定义中添加editable: true属性。此外,如果在colModel的开头添加新列,则必须调整从服务器返回的JSON中元素的位置。而且,它只能一个具有key: true属性的列。这意味着将从列中获取行的id属性值(<tr>的id)。如果使用该属性,则来自JSON输入的id属性将被忽略。您只能在包含唯一值的列中使用key: true。
https://stackoverflow.com/questions/13717264
复制相似问题