asp.net-mvc – 如何将行的模型从Kendo Grid传递到可编辑的模板
发布时间:2021-03-30 22:29:06 所属栏目:asp.Net 来源:互联网
导读:我有一个Kendo Grid,它有一个弹出式可编辑模板, 如果可能,我想将模型(行的模型,或至少其Id)传递给可编辑模板 格 @(Html.Kendo().GridClient() .Name(grid) .Columns(columns = { columns.Bound(c = c.Name).Width(140); colu
|
我有一个Kendo Grid,它有一个弹出式可编辑模板, 格 @(Html.Kendo().Grid<Client>()
.Name("grid")
.Columns(columns =>
{
columns.Bound(c => c.Name).Width(140);
columns.Bound(c => c.Status);
columns.Bound(c => c.ProcesingStyle);
columns.Bound(c => c.ArchiveDays);
columns.Command(command =>
{
command.Edit().Text(" ");
command.Destroy().Text(" "); ;
}).Width(90);
})
.ToolBar(toolbar => toolbar.Create().Text("New"))
.Editable(editable => editable
.Mode(GridEditMode.PopUp)
.TemplateName("Client").AdditionalViewData(new { Client = Model })
.Window(w => w.Title("Site")))
.HtmlAttributes(new { style = "height: 380px;" })
.Scrollable()
.Sortable()
.Selectable()
.Resizable(resize => resize.Columns(true))
.Reorderable(reorder => reorder.Columns(true))
.Events(events => events.Change("onChange"))
.Pageable(pageable => pageable
.Refresh(true)
.PageSizes(true)
.ButtonCount(5))
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Get","Clients"))
.Model(model => model.Id(p => p.Id))
.Create(update => update.Action("Create","Clients"))
.Update(update => update.Action("Update","Clients"))
.Destroy(update => update.Action("Destroy","Clients"))
)
)
模板 @model Client
@(Html.Kendo().ComboBoxFor(m => m.Plan)
.DataTextField("Name")
.DataValueField("Id")
.Placeholder("Select Plan...")
.HtmlAttributes(new { style = "width:300px" })
.Filter(FilterType.Contains)
.MinLength(3)
.DataSource(source =>
source.Read(read =>
read.Action("GetPlans","Plans",new {ClientId = Model.Id}))))
一切正常,除了我需要使用模板内的行/模型的Id,特别是,我需要将模型.Id(行的模型的id)传递给Combobox上的动作在模板中,所以我可以正确过滤数据 这是网格中的违规行, .TemplateName("Client").AdditionalViewData(new { Client = Model })
结果是模板内的模型总是为null,我不知道如何将我需要的数据传递给模板 无论如何我能做到这一点,还是我应该看一个不同的方法? 解决方法我解决这个问题的方法是在原始视图中放置一个javascript函数,如下所示function getClientId() {
var row = $(event.srcElement).closest("tr");
var grid = $(event.srcElement).closest("[data-role=grid]").data("kendoGrid");
var dataItem = grid.dataItem(row);
if (dataItem)
return { clientId: dataItem.Id }
else
return { clientId: null }
}
并从我的编辑器模板中引用它 .DataSource(source => source.Read(read => read.Action("GetPlans","Plans").Data("getClientId"))))
注意:我很确定你不能从EditorTemplate运行javascript,所以它需要被放在原始视图中 如果其他人可以更好地回答这个问题,或者有不同的答案,那么就会相应地标记你的答 (编辑:长春站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Asp.NET 生成静态页面并分页的代码
- ASP.NET MVC下Ajax.BeginForm方式无刷新提交表单实例
- 扩展ASP.NET数据缓存以在Web场之间共享
- [asp.net mvc 奇淫巧技] 02 - 巧用Razor引擎在Action内生成
- ASP.NET汉字转拼音 - 输入汉字获取其拼音的具体实现
- asp.net – OutOfMemoryException当发送大文件500MB使用Fil
- asp.net – System.Security.SecurityException?
- asp.net-web-api – ASP身份OAuth令牌 – 我应该在移动应用
- asp.net – 是否有可能过滤SignalR中的接收器?
- asp.net-mvc – ASP.NET MVC 3 Beta 1 Block访问Razor视图
推荐文章
站长推荐
- asp.net – 通过邮件发送wcf服务消费表单数据
- asp.net-mvc-3 – MVC3剃须刀:是否可以渲染传统
- 实体框架 – WebApi OData:$filter’any’或’a
- asp.net-mvc – 如何在ASP.NET MVC中使用单选模式
- asp.net-mvc – ASP.net MVC:在RenderAction中获
- 回收ASP.NET应用程序是否会激起用户的兴趣?
- asp.net 使用驻留在页面中的Cache缓存常用可定时
- 在IIS / ASP.Net中的.NET 1.1应用程序中创建.NET
- 密码由6-12位数字或字母组成,密码哈希加密
- asp.net – 在web.config文件中设置重定向
热点阅读
