如何将父ID传递给Kendo UI子网格新记录编辑器

时间:2016-03-09 20:28:58

标签: kendo-ui kendo-grid kendo-asp.net-mvc

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

我传递了所选记录的ID:

.Read(read => read.Action("AquisitionNotes_Read", "AquisitionNotes").Data("GetCurrentSourceID"))

GetCurrentSourceID函数简单:

function GetCurrentSourceID() {
   return {sourceid: currentSourceID };
}

有效。

但是当我想添加新记录时,如何将currentSourceID值放入Post?如果我尝试显而易见的事情:

.Create(update => update.Action("AquisitionNotes_Create", AquisitionNotes").Data("GetCurrentSourceID"))

来自编辑器的值(当然是0)获得优先权并被传递。

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

  • 布拉德

2 个答案:

答案 0 :(得分:0)

要将默认值传递给创建,您应该使用DataSource

例如

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

答案 1 :(得分:0)

感谢@ user5135401给我带来的领先优势。

如果要设置静态默认值,

user5135401的解决方案有效。我不知道从Razor做一个动态默认值的方法。这是你按照this forum post

的方式进行的

从网格的.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);
    }
}