剑道网格层次结构的问题

Posted

技术标签:

【中文标题】剑道网格层次结构的问题【英文标题】:Problems with Kendo Grid Hierarchy 【发布时间】:2012-11-16 23:14:00 【问题描述】:

任何人都可以编写简单的步骤来在 kendo ui 网格 (mvc) 中实现层次结构。我一直在尝试他们的演示,但无法使其正常工作。非常感谢您的帮助!

我想我遗漏了一些东西,但这就是我正在做的事情(如http://demos.kendoui.com/web/grid/hierarchy.html

我正在将 .ClientDetailTemplateId("Grid2Template") 添加到我现有的网格中。 然后我正在为上面的 Grid2Template 编写代码。

我正在执行演示中显示的 100% 的操作,但无法通过这两个步骤进行操作。有什么额外的事情吗?

这是一个非常简单的演示项目...http://www.mediafire.com/?5qjyp40qfef7dkb

【问题讨论】:

如果你有代码可以显示一些吗? 感谢您的帮助。我真的在寻找它。请查看演示链接 我已经编辑了问题并添加了演示链接。谢谢! 仅供参考,标记为解决方案的答案是您能做的最糟糕的事情。如果我可以多次否决它,我会的。对于现在正在查看此问题的任何人,我在此链接底部发布的修复程序现已包含在 Kendo UI 代码中,因此从 2013 年第三季度起您应该不再遇到此问题。 【参考方案1】:

您的问题有点棘手,很难找到。转到 webconfig 并删除以下行:

<httpRuntime requestValidationMode="4.5" targetFramework="4.5" encoderType="System.Web.Security.AntiXss.AntiXssEncoder, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

此编码器 AntiXSS 破坏了客户端模板,并且 Grid 无法显示详细模板。

此更改后项目应该可以正常运行。

【讨论】:

你是天才伴侣 :)。我花了好几个小时在这上面。非常感谢您的时间和精力。这真的是一种解脱。谢谢!!! 那么您是否查看过 AntiXSS 的哪个部分导致了这个问题?有没有更好的解决方法(关闭验证请求或将模板输出为原始 html 以绕过 xss 过滤?)...希望您没有在任何重要的生产应用程序上禁用此功能! 天哪!我不敢相信这是解决方案。虽然它对我有用,但关闭它的后果是什么? 这绝对不是解决问题的合适方法。【参考方案2】:

很抱歉迟到了。无需移除 AntiXss 编码器。只需解码 Kendo 吐出的字符串并将其原始显示在您的视图中。

所以而不是:

@(Html.Kendo().TabStrip().Items(…).ToClientTemplate())

这样做:

@Html.Raw(HttpUtility.HtmlDecode(Html.Kendo().TabStrip().Items(…).ToClientTemplate().ToString()))

【讨论】:

【参考方案3】:

更新:仅供参考 Telerik 自 2014 年第一季度起已将我的解决方案包含在 Kendo UI MVC 中,因此如果您使用较新的位,则不再需要这些“解决方案”。


取出 AntiXssEncoder 绝对是个坏消息,你不应该这样做。我尝试使用 Jportelas 和 Marcelo 的答案,但他们仍然没有完全解决问题。在处理必填字段时,Kendo 和 MVC 将必填字段验证器注入到 javascript 中,其中的空格以完全不同的方式编码(它使用转义的 UTF-8 字符串表示&符号,然后是 html 字符代码磅符号。它们一起代表一个空间。搞砸了,对吧?!?)

I've created a Gist 展示了如何解决任何控件的问题,而不仅仅是 Kendo UI。我还要求 Telerik 在下一个版本中包含该解决方案...请随时这样做。

HTH

【讨论】:

【参考方案4】:

我的一个聪明的同事发现了类似的东西,他发现在客户端模板生成的字符串中被“”替换的空格,所以他这样做并且它有效:

@Html.Raw((Html.Kendo().Grid<..>...ToClientTemplate()..ToHtmlString().Replace("&#32;", " ")))

我们不想禁用 AntiXSS,因为这就像放下防御一样。

【讨论】:

以上是关于剑道网格层次结构的问题的主要内容,如果未能解决你的问题,请参考以下文章

具有层次结构的网格自定义命令正在调用 javascript 函数两次。

如何隐藏网格标题剑道ui?

在角度控制器中动态创建剑道网格列

单击按钮时剑道网格不会打开剑道窗口

剑道网格:性能缓慢问题

剑道网格的水平滚动