Kendo ui 如何将父id传递给剑道UI子网格新记录编辑器

Kendo ui 如何将父id传递给剑道UI子网格新记录编辑器,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我有一个显示数据库记录列表的树视图。当用户选择一条记录时,我用相关的记录详细信息填充一个网格。外键是sourceid 我按如下方式传递所选记录的id: .Read(read => read.Action("AquisitionNotes_Read", "AquisitionNotes").Data("GetCurrentSourceID")) GetCurrentSourceID函数的作用很简单: function GetCurrentSourceID() { return {so

我有一个显示数据库记录列表的树视图。当用户选择一条记录时,我用相关的记录详细信息填充一个网格。外键是sourceid

我按如下方式传递所选记录的id:

.Read(read => read.Action("AquisitionNotes_Read", "AquisitionNotes").Data("GetCurrentSourceID"))
GetCurrentSourceID函数的作用很简单:

function GetCurrentSourceID() {
   return {sourceid: currentSourceID };
}
这很有效

但是,当我想添加一条新记录时,如何将currentSourceID值添加到日志中?如果我尝试显而易见的方法:

.Create(update => update.Action("AquisitionNotes_Create", AquisitionNotes").Data("GetCurrentSourceID"))
编辑器中的值(当然是0)具有优先级并被传递

如何强制实际的sourceid覆盖编辑器的值?还是我用错误的方式解决了问题

  • 布拉德

要将默认值传递给create,应使用
DataSource

比如说

@(Html.Kendo().Grid()
      .DataSource(data=>data.Ajax()
                        .Model(m=>{
                             m.Field(field=>field.Whatever).DefaultValue(TheValue);
            })))

多亏@user5135401给我的线索,我才弄明白

如果要设置静态默认值,则user5135401的解决方案有效。我不知道有什么方法可以实现动态默认值表单Razor。这是您按照以下步骤进行操作的方式:

从网格的.Edit事件调用JS函数,如:

.Events(events => events.Edit("SetDefaultSourceID"))
然后,该函数返回值,在我的例子中是所选TreeView项的外键值:

function SetDefaultSourceID(e) {
    if (e.model.isNew()) {
        //set the required field value
        e.model.set("sourceid", currentSourceID);
    }
}