我正在使用Multiselect
选项从JqGrid删除记录。记录从数据库中删除如何更新UI
grid.jqGrid('getGridParam', 'selarrrow')
使用上面的线我得到了用户选择的行ID和进行AJAX调用,通过ID的,并从数据库中删除。
我的疑问是删除后,我应该重新形成网格或什么是处理这个最好的方法?
任何工作示例都会很棒。
我正在使用Multiselect
选项从JqGrid删除记录。记录从数据库中删除如何更新UI
grid.jqGrid('getGridParam', 'selarrrow')
使用上面的线我得到了用户选择的行ID和进行AJAX调用,通过ID的,并从数据库中删除。
我的疑问是删除后,我应该重新形成网格或什么是处理这个最好的方法?
任何工作示例都会很棒。
您可以重新加载网格,但这会导致另一个往返服务器。
或者,由于您已经拥有了要删除的行的ID,因此您可以遍历该列表并使用delRowData
方法删除它们。由于事实,即改变在数据库发生电网将会过时,你实际上可能要重新加载电网,以便从去陈旧保持数据
var rows = grid.jqGrid('getGridParam', 'selarrrow');
rows = rows.slice(); // Create a copy of the array since it
// is indirectly modified below
for (var i = 0; i < rows.length; i++){
jQuery('#mygrid').jqGrid('delRowData', rows[i]);
}
:这将提供一个更灵活的解决方案。
完美的工作。但只有备选行被删除!我保持一个控制台返回[1,3,5,7]只有1,5被删除。我的网格做错了吗? – user2067567
@JustinEthier:'rows'将**引用**到内部参数'selarrrow'。在删除第一个项目之后,您将比较'i'和'rows.length',它是一个较小的。即使你将'rows.length'高速缓存在另一个变量中,它也是错误的,因为行'[i]'的后半部分将会是'undefined',因为'rows'的大小在每次删除后都会减少。例如,你可以总是使用索引'i = 0'并且执行'l = rows.length'次。或者,你可以从'i = rows.length - 1'开始并递减'i':'for(var i = rows.length - 1; i> = 0; i - ){...}' – Oleg
@奥列格 - 好,赶快,谢谢! –