Asp.net mvc 在控制器中编辑行始终校准功能

Asp.net mvc 在控制器中编辑行始终校准功能,asp.net-mvc,jqgrid,Asp.net Mvc,Jqgrid,为什么jqGrid中的保存行总是调用Controller中的1个函数测试? 我正在使用jqgrid 4.6.0 在控制器中,我创建了如下视图方法 public class TesMasterDataController : Controller { public ActionResult test() { // debug here return View(); } } 通过JQgrid为任何数据视图创建任何网格加载 在onCellS

为什么jqGrid中的保存行总是调用Controller中的1个函数测试? 我正在使用jqgrid 4.6.0

在控制器中,我创建了如下视图方法

public class TesMasterDataController : Controller
{
     public ActionResult test()
     {
       // debug here
       return View();
     }
 }
通过JQgrid为任何数据视图创建任何网格加载

在onCellSelect上打开任何行进行编辑:

onCellSelect: function (rowid) {
              $("#" + gridId).jqGrid("editRow", rowid, false, "clientArray");
              setTimeout(jQuery("#" + gridId).saveRow(rowid, {
                 successfunc: function () {
                   return true;
                }
               }, "clientArray"), 300);
            }

在控制器测试方法中调试您可以看到,函数saveRow总是调用它,尽管我已将url设置为null?

由于许多原因,
onCellSelect
回调的代码非常奇怪,但您的主要问题在于
saveRow
的错误使用。目前,您使用它的形式如下

.saveRow(rowid, {
           successfunc: function () {
               return true;
           }
       }, "clientArray");
方法
saveRow
可以在以下形式中的一种中使用:或者

.saveRow(rowid, {
           url: "clientArray",
           successfunc: function () {
               return true;
           }
       });


此外,建议不要使用4.6.0版的复古版,因为它已经有3.5年的历史了。jqGrid有两个主要分支:一个是我开发的,可以在jqGrid 4.6等许可证下免费使用;另一个是商业的,开发Tony Tomov。我建议您从产品中选择一个,并将jqGrid 4.6更新到相应产品的最新版本。免费jqGrid的当前版本是4.15.2。您可以直接从CDN加载它(请参阅)。要测试它,您只需要更改代码的3行:加载jqGrid css/js文件的URL。免费jqGrid与jqGrid 4.6兼容,但它支持许多新功能。您可以首先查看。

您在哪里将url设置为
null
?@Stephen Muecke jQuery(“#”+gridId).saveRow(rowid,{successfunc:function(){return true;},null)。您可以看到参数3主url更新已设置为nullTry
'clientArray'
而不是
null
(从文档中-如果设置为'clientArray',则数据不会发布到服务器,而是仅保存到网格中)谢谢@Stephen Muecke,我已经过测试,但它仍然调用方法test:)@HongVanVit:您应该使用jqGrid选项
editurl:“clientArray”
通知jqGrid仅使用本地编辑。此外,您应该在关于jqGrid的所有问题的文本中包括您使用(可以使用)的版本,以及fork(、商业版或旧jqGrid版本,先生,您能帮个忙吗
.saveRow(rowid,
         function () {
             return true;
         },
         "clientArray");