8

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

我想我错过了一些东西,但这就是我正在做的事情(如http://demos.kendoui.c​​om /web/grid/hierarchy.html )

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

我正在做演示中显示的 100%,但无法让它与这两个步骤一起工作。有什么额外的参与吗?

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

4

4 回答 4

9

你的问题有点棘手,很难找到。转到 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 无法显示详细模板。

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

于 2012-11-29T21:17:13.590 回答
6

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

所以而不是:

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

做这个:

@Html.Raw(HttpUtility.HtmlDecode(Html.Kendo().TabStrip().Items(…).ToClientTemplate().ToString()))
于 2013-03-11T03:26:40.640 回答
3

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


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

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

高温高压

于 2013-06-06T20:53:50.477 回答
0

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

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

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

于 2013-05-31T19:57:48.900 回答