title: Kendo Grid - Custom Editor, Update Not Firing, Rows Deleting
body: <p>I have a grid with a datasource loaded locally (not using transport).  I was able to create a custom editor which adds checkboxes to a row when user clicks "edit" button.  Can't use the default editor since I have to do a per-field check to see if user is authorized to change a field.</p>
  
  <p>Clicking "edit" button does what I expect, it displays checkboxes where it should.  However, upon changing data and clicking "update" button, the row deletes.  Or when in "edit" mode and user clicks another "edit" button in a different row, the original row deletes or console error about null data.</p>
  
  <p>Update event never seems to fire either so that I can manually handle updating data source.</p>
  
  <pre><code>dataSource = new kendo.data.DataSource({
    data: result,                         
    change: function(e){
    console.log('a change happened');
    console.log(e);                               
    },
    schema: {
      model: {
        id: "uid",
        fields: {
          lastName: {editable:false},
          firstName: {editable:false},
          email: {editable:false},
          accountNum: {editable:false},
          email: {editable:false},
          status: {editable:true},
          RQ:{editable:true, type:"boolean"},
          RR:{editable:true, type:"boolean"},
          ER:{editable:true, type:"boolean"},     
        }
      }
    },
    batch: true,
    pageSize: 50
  });
  
  
  $("#grid").kendoGrid({
      dataSource: dataSource, 
      editable: "inline",
      pageable: {
          refresh: false,
          pageSize: 50,
          pageSizes: [
              50,
              100,
              200
          ]
      },
      filterable: {
          extra: false,
          operators: {
              string: {
                  contains: "Contains",
                  startswith: "Starts with"
              },          
          }
      },
      reorderable: true,
      resizable: true,
      columns: columnsettings,
      edit: function(e){
          //$('#grid').data('kendoGrid').dataSource.read();
          console.log('an edit happened');
          console.log(e);
          //e.preventDefault();
      },
      cancel: function(e){
          //$('#grid').data('kendoGrid').dataSource.read();
          //$('#grid').data('kendoGrid').dataSource.sync();
          console.log('cancel happened');
          console.log(e);
          //e.preventDefault();
          $('#grid').data('kendoGrid').dataSource.read();
      },
      update: function(e){
          console.log('an update happened');
          console.log(e);
      },
      change: function(e){
          console.log('a change happened not datasource one');
          console.log(e);
      },
      saveChanges: function(e){
          console.log('a save is about to occurr');
          console.log(e);
      },
      // get grid state to save to DB
      dataBound: function(e){
          var grid = this;
          var dataSource = this.dataSource;
          var state = kendo.stringify({
              page: dataSource.page(),
              pageSize: dataSource.pageSize(),
              sort: dataSource.sort(),
              group: dataSource.group(),
              filter: dataSource.filter()
          });
      }
  });
  
  
  
  
  
  function customInlineEditor(container, options){
          var currentField = options.field;
          var inputField;
          if(options.model[currentField] === true){
              inputField = $('&lt;input type="checkbox" data-value-field="'+currentField+'" name="'+currentField+'" checked&gt;');
          }else if(options.model[currentField] === false){
              inputField = $('&lt;input type="checkbox" name="'+currentField+'"&gt;');
          }else{
              //inputField = "Locked";
          }
          container.append(inputField);
      }
  </code></pre>