Kendo Grid:通过“创建”来添加检测新行。工具栏按钮

时间:2015-03-28 22:27:52

标签: kendo-grid

我正在处理主/详细信息页面 - 主记录位于Kendo下拉列表中,相关的详细数据位于kendo网格中。

dd&网格绑定到远程数据。

更新现有网格行工作正常。

当一个新行保存到网格时,我需要插入所选下拉项的id(主记录id)并将其添加到json数据。

我的问题是我不知道如何确定保存的数据是新记录还是编辑。

我收到此错误:"未捕获的TypeError:无法读取属性' isNew'未定义"

感谢您提供任何指导。

 $issuegrid
    ->addColumn($issueOwnerCol)
    ->addColumn($issueDescriptionCol)
    ->addColumn($issueDueDateCol)
    ->pageable(false) //this is the toolbar in the footer
    ->height(300)
    ->navigatable(true)
    ->editable(true)
    ->save('onSave')
    ->edit('onEdit')
    **->saveChanges('onSaveChanges')** 
     ->addToolbarItem($igridCreate)
     ->addToolbarItem($igridSave)
     ->addToolbarItem($igridCancel);

这里是js功能:

function **onSaveChanges**(e){

var grid = $("#issuesGrid").data("kendoGrid");
var URL ="/issues/updaterecord.json";
var ddl = $("#woDD").data("kendoDropDownList");
var v = ddl.value();

   if (grid.dataSource.data.model.isNew()){
    alert("New Record")
   }
  grid.dataSource.transport.options.update.url = URL;
  grid.dataSource.sync();
 }

1 个答案:

答案 0 :(得分:0)

嗯,这是一种解决方法,但在我的onSaveChanges函数中,我必须将所需的id附加到create url,然后在服务器上将其解压缩。我宁愿只为json有效负载添加一个键/值对。

function onSaveChanges(e){
    var grid = $("#issuesGrid").data("kendoGrid");
    var ddl = $("#woDD").data("kendoDropDownList");    
    var woID = ddl.value();
    var createURL ="/issues/addrecord.json?woID=" + woID;

    grid.dataSource.transport.options.create.url = createURL;

     //when updating an edited record, transport will use the default url defined in php code.              

}