我正在处理主/详细信息页面 - 主记录位于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();
}
答案 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.
}