剑道网格弹出显示
Posted
技术标签:
【中文标题】剑道网格弹出显示【英文标题】:kendo grid popup display 【发布时间】:2012-11-10 08:55:05 【问题描述】:MVC4,剃刀视图。我可以使用客户端模板打开 Kendo (Ajax) 网格项目的详细信息窗口,并且可以正常工作。我的问题是,当我返回网格时,我失去了网格状态(排序/排序等)。
我的想法是使用弹出窗口来显示网格项目的详细信息。我了解了如何创建弹出式编辑窗口,但我只想显示没有编辑功能的详细信息。
我似乎无法创建自定义命令,因为我使用的是 Ajax 数据源。
关于如何完成打开详细信息窗口而不丢失网格状态或仅弹出详细信息窗口的任何想法(请使用剃刀语法)。
谢谢
【问题讨论】:
可能因为重新加载而丢失了网格的状态。检查您的代码,看看您是否真的在关闭详细信息窗口后再次更新它。 Kate - Details 视图有一个提交按钮,可以触发我的 [HttpPost] public ActionResult Details() return View("Index"); 是的,确实会重新加载网格。我还能怎么做才能不重新加载网格? 为什么你需要重新加载它,特别是如果你不想编辑细节?我 我真的不想重新加载它。我知道再次调出视图的唯一方法是返回 View("Index"),它会重新加载它。如何在不重新加载的情况下从 Details 视图转到 Index 视图? 不要打开其他视图,而是尝试在对话窗口中使用 Ajax 打开它,使用 KendoUi 很容易做到demos.kendoui.com/web/window/index.html 【参考方案1】:一个技巧是使用编辑器模板。如果您已将网格设置为绑定在 MyType
类型上:
@(Html.Kendo().Grid<MyType>().Name("my-grid"))
然后您只需在同一个视图文件夹中添加一个名为EditorTemplates
的新文件夹(如果您始终没有,通常在用于剑道模板的Shared
文件夹下有一个这样的文件夹)和将要在弹出窗口中显示的视图放入其中:
@model MyType
<div class="display-label">@Html.LabelFor(m => m.Name)</div>
<div class="display-field">@Html.DisplayFor(m => m.Name)</div>
等等……
【讨论】:
Samuel - 编辑窗口仍然在底部添加“更新”和“取消”按钮。有什么办法可以抑制它? 一个技巧是用javascript修改这些按钮(您可以使用网格的事件Edit
以便在窗口打开@Html.Kendo().Grid().Events(e => e.Edit("my-js-function")
时添加javascript代码)或者如果这是单个剑道您可以在页面上的 ui 窗口添加 css 代码:.k-window .k-grid-update display: none;
.以上是关于剑道网格弹出显示的主要内容,如果未能解决你的问题,请参考以下文章
剑道网格 - 如何在添加/编辑子行时访问父行模型(详细网格)