我有一个显示数据库记录列表的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覆盖编辑器的值?或者我是以错误的方式解决问题?
答案 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);
}
}