Json 为什么在网格行的内联编辑中单击“更新”时会调用我的Read方法

Json 为什么在网格行的内联编辑中单击“更新”时会调用我的Read方法,json,asp.net-mvc-3,asp.net-mvc-4,kendo-ui,kendo-grid,Json,Asp.net Mvc 3,Asp.net Mvc 4,Kendo Ui,Kendo Grid,剑道格网又是令人沮丧的一天。无论如何,我的问题是:当我在网格行项目上单击“编辑”时,它将进入编辑模式。好。然后我修改一条记录,然后单击更新。我希望能调用“/Company/SaveAccountAdmin”方法。但是没有。。。再次调用read方法。当我点击“取消”时,记录就消失了!$(“#save”)click事件只是试图强制保存,但这些事件肯定可以从网格命令按钮触发吗?有什么想法吗 /// <reference path="../kendo.all-vsdoc.js" /> $(

剑道格网又是令人沮丧的一天。无论如何,我的问题是:当我在网格行项目上单击“编辑”时,它将进入编辑模式。好。然后我修改一条记录,然后单击更新。我希望能调用“/Company/SaveAccountAdmin”方法。但是没有。。。再次调用read方法。当我点击“取消”时,记录就消失了!$(“#save”)click事件只是试图强制保存,但这些事件肯定可以从网格命令按钮触发吗?有什么想法吗

/// <reference path="../kendo.all-vsdoc.js" />

$(document).ready(function () {

var CompanyId = $("#CompanyId").val();

var dataSource = new kendo.data.DataSource(
  {
      batch: true,
      pageSize: 10,

      transport: {
          create: {
              url: "/Company/SaveAccountAdmin",
              contentType: "application/json; charset=utf-8",
              type: "POST",
              dataType: "json",
              url: "/Company/ReadAccountAdmin",
          },

          read: {
              url: "/Company/ReadAccountAdmin"
          },

          update: {
              url: "/Company/SaveAccountAdmin",
              contentType: "application/json; charset=utf-8",
              type: "POST",
              dataType: "json",
              url: "/Company/ReadAccountAdmin",
          },
          //destroy: {},
          parameterMap: function (options, operation) {
              if (operation !== "read" && options.model) {
                  return { model: kendo.stringify(options.model) };
              }
          }
      },

      schema: {

          model: {
              id: "ComanyContactId",
              fields: {
                  CompanyId: { type: "number", editable: false, nullable: false, defaultVaue: CompanyId },
                  CompanyContactId: { type: "number", editable: false, defaultValue: 0 },
                  FirstName: { type: "string", nullable: false, validation: { required: true } },
                  LastName: { type: "string", nullable: false, validation: { required: true } },
                  Email: { type: "string", nullable: false, validation: { required: true } },
                  Phone: { type: "string", nullable: false, validation: { required: true } },
                  IsActive: { type: "boolean" }
              }
          }
      }
  });

$("#save").click(function (event) {

    event.preventDefault();

    var rows = $.map(dataSource.data(), function (value, index) {

        return {
            CompanyId: value["CompanyId"],
            CompanyContactId: value["CompanyContactId"],
            FirstName: value["FirstName"],
            LastName: value["LastName"],
            Email: value["Email"],
            Phone: value["Phone"],
            IsActive: value["IsActive"]
        }
    });


    var jsonCompanyContacts = JSON.stringify(rows);

    $.ajax({
        url: '/Company/SaveAccountAdmin',
        type: 'POST',
        traditional: true,
        data: { "jsonCompanyContacts": jsonCompanyContacts },
        success: alert("Data Saved")
    })
});


$("#AccountAdmins").kendoGrid({
    dataSource: dataSource,
    toolbar: ["create"],

    editable: "inline",
    sortable: true,
    pageable: true,
    navigatable: true,
    editable: "inline",
    columns: [
        { field: "CompanyId", title: "CompanyID", sortable: true },
        { field: "CompanyContactId", title: "Company ContactID", sortable: true },
        { field: "FirstName", title: "First Name", sortable: true },
        { field: "LastName", title: "Last Name" },
        { field: "Email", title: "Email", },
        { field: "Phone", title: "Phone", },
        { field: "IsActive", title: "Is Active" },
        { command: ["edit", "destroy"], title: "&nbsp;", width: "210px" }]

});
//
$(文档).ready(函数(){
var CompanyId=$(“#CompanyId”).val();
var dataSource=new kendo.data.dataSource(
{
批次:对,
页面大小:10,
运输:{
创建:{
url:“/Company/SaveAccountAdmin”,
contentType:“应用程序/json;字符集=utf-8”,
类型:“POST”,
数据类型:“json”,
url:“/Company/ReadAccountAdmin”,
},
阅读:{
url:“/Company/ReadAccountAdmin”
},
更新:{
url:“/Company/SaveAccountAdmin”,
contentType:“应用程序/json;字符集=utf-8”,
类型:“POST”,
数据类型:“json”,
url:“/Company/ReadAccountAdmin”,
},
//销毁:{},
parameterMap:功能(选项、操作){
if(操作!=“读取”&&options.model){
返回{model:kendo.stringify(options.model)};
}
}
},
模式:{
型号:{
id:“ComanyContactId”,
字段:{
CompanyId:{type:“number”,可编辑:false,可空:false,defaultVaue:CompanyId},
CompanyContactId:{type:“number”,可编辑:false,默认值:0},
名字:{type:“string”,可空:false,验证:{required:true},
LastName:{type:“string”,可为空:false,验证:{required:true},
电子邮件:{type:“string”,可为空:false,验证:{required:true},
电话:{type:“string”,可为空:false,验证:{required:true},
IsActive:{type:“boolean”}
}
}
}
});
$(“#保存”)。单击(函数(事件){
event.preventDefault();
变量行=$.map(dataSource.data(),函数(值,索引){
返回{
CompanyId:value[“CompanyId”],
CompanyContactId:value[“CompanyContactId”],
FirstName:value[“FirstName”],
LastName:value[“LastName”],
电子邮件:值[“电子邮件”],
电话:值[“电话”],
IsActive:值[“IsActive”]
}
});
var jsonCompanyContacts=JSON.stringify(行);
$.ajax({
url:“/Company/SaveAccountAdmin”,
键入:“POST”,
传统的:是的,
数据:{“jsonCompanyContacts”:jsonCompanyContacts},
成功:警报(“数据已保存”)
})
});
$(“#会计管理员”)。肯多格里德({
数据源:数据源,
工具栏:[“创建”],
可编辑:“内联”,
可排序:是的,
pageable:对,
可导航:是的,
可编辑:“内联”,
栏目:[
{字段:“CompanyId”,标题:“CompanyId”,可排序:true},
{字段:“CompanyContactId”,标题:“CompanyContactId”,可排序:true},
{字段:“FirstName”,标题:“FirstName”,可排序:true},
{字段:“姓氏”,标题:“姓氏”},
{字段:“电子邮件”,标题:“电子邮件”},
{字段:“电话”,标题:“电话”},
{字段:“IsActive”,标题:“Is Active”},
{命令:[“编辑”、“销毁”],标题:“”,宽度:“210px”}]
});

}))

我猜这是因为您为Update命令设置了读取URL:

      update: {
          url: "/Company/SaveAccountAdmin", // <-- Not used because it is changed below
          contentType: "application/json; charset=utf-8",
          type: "POST",
          dataType: "json",
          url: "/Company/ReadAccountAdmin", // <-- Read URL set
      },
更新:{

url:“/Company/SaveAccountAdmin”,//很好地发现了!我在这个网格上经历了太多的组合,我再也看不清了。