在Controller中编辑行始终校准函数

时间:2017-11-24 05:54:47

标签: asp.net-mvc jqgrid

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

在Controller中我创建一个像这样的视图方法

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?

1 个答案:

答案 0 :(得分:1)

onCellSelect回调的代码因为很多事情而非常奇怪,但是你错误使用saveRow时的主要问题。目前您以下列形式使用它

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

方法saveRow可以使用以下形式之一:

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

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

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