我有以下内联可编辑网格
var lastsel; $("#mygrid").jqGrid({ data:JqgridResponse.rows, datatype: "local", colNames:['DATE', 'SOURCE', 'DEST', 'FROM', 'TO'], colModel:[ //1140 width {name:'time', index:'time', width:170 ,sortable:false}, {name:'source', index:'source', width:290,sortable:false,editable:true,editoptions:{size:"33",maxlength:"50"}}, {name:'dest', index:'dest', width:290,sortable:false,editable:true,editoptions:{size:"33",maxlength:"50"}}, {name:'from', index:'from', width:170,sortable:false,editable:true, edittype:"select",editoptions:{value:"us:US;gb:GB;fr:FR"}}, {name:'to', index:'to', width:170,sortable:false,editable:true, edittype:"select",editoptions:{value:"us:US;gb:GB;fr:FR"}} ], multiselect: true, rownumbers: false, rowNum:10, rowList:[10,50,100], height: "100%", autowidth: true, pager: '#pager', viewrecords: true, sortorder: "desc", ondblClickRow: function(id) { if(id && id!==lastsel){ jQuery('#mygrid').jqGrid('restoreRow',lastsel); jQuery('#mygrid').jqGrid('editRow',id,true); lastsel=id; } } });
导航按钮及其事件
$("#mygrid").navButtonAdd('#pager', { caption:"", buttonicon:"ui-icon-disk", onClickButton: updateLocations, title:"Update Locations", cursor: "pointer" } ); function updateLocations(obj, args){ //how to get the edited data source, dest, from, to ? }
如何在updateLocations方法中获取“source”和“dest”的编辑输入值,以及“from”和“to”的选定值?
我试图在Firebug中找到已编辑的行,但输入完全没有值!例如,对于“来源”
<td aria-describedby="mygrid_source" title="N-finger" style="" role="gridcell"> <input id="36_source" class="editable" type="text" size="33" maxlength="50" name="sourcespan" role="textbox"> </td>
我错过了什么吗?感谢。
答案 0 :(得分:0)
您应该使用saveRow
保存所有修改内容;调用restoreRow
只会将行还原为之前的值。
我不相信有一种方法只会获得您的更改,但您可以使用具有顶级范围的数组跟踪所有已更改的行。然后,您需要修改ondblClickRow
以使用该数组来跟踪已修改的每个行ID。然后在updateLocations
中,您可以使用getRowData
获取每个行的数据,并(例如)通过POST将其保存到服务器。