肯德基网格弹出窗口显示

4

MVC4,刀锋视图。我可以使用客户端模板打开一个Kendo(Ajax)网格项的详细窗口,这个可以运行。我的问题是当我返回到网格时失去了网格状态(排序/排序等)。

我的想法是使用弹出窗口来显示网格项详情。我知道如何创建弹出式编辑窗口,但我只想显示没有编辑功能的详情。

由于我正在使用Ajax数据源,所以似乎无法创建自定义命令。

有没有任何想法,如何打开详细窗口而不会丢失我的网格状态,或者只弹出一个详细信息窗口,(请使用剃刀语法)。

谢谢


可能是因为重新加载了网格,导致其状态丢失。请检查您的代码,看看在关闭详细窗口后是否真的更新了它。 - Kath
Kate - 详细视图有一个提交按钮,它会触发我的[HttpPost]公共操作结果Details()。该操作结果返回View("Index")。是的,它会重新加载网格。我还有其他方法可以避免重新加载网格吗? - user1544704
这个网格正在使用Ajax,所以对我来说没有自定义命令。我能想到的唯一弹出网格窗口的方法是创建一个js脚本。我希望保持所有剃刀语法。还有其他方法吗? - user1544704
我不认为使用 Razor 语法是可能的,因为它是服务器端技术...你为什么避免使用 JS? - Kath
又是一个学习曲线。谢谢你的帮助,凯特。我将继续追求窗口的想法。保罗。 - user1544704
显示剩余3条评论
1个回答

0
一个技巧是使用编辑器模板。如果您已将网格设置为绑定到类型MyType
@(Html.Kendo().Grid<MyType>().Name("my-grid"))

然后你只需要在同一个视图文件夹中添加一个名为EditorTemplates的新文件夹(如果你没有这样的文件夹,通常你会在用于Kendo模板的Shared文件夹下有一个这样的文件夹),并将你想要在弹出窗口中显示的视图放入其中:

@model MyType

<div class="display-label">@Html.LabelFor(m => m.Name)</div>
<div class="display-field">@Html.DisplayFor(m => m.Name)</div>

等等……


Samuel - 编辑窗口仍然在底部添加“更新”和“取消”按钮。我有没有办法抑制它? - user1544704
1
一个技巧是使用JavaScript修改这些按钮(你可以使用网格的Edit事件来添加JavaScript代码,当窗口打开时@Html.Kendo().Grid().Events(e => e.Edit("my-js-function"))或者如果这是页面上唯一的Kendo UI窗口,你可以添加CSS代码:.k-window .k-grid-update { display: none; } - Samuel Caillerie

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接