任何人都可以写一些简单的步骤来实现kendo ui grid(mvc)中的层次结构。我一直在尝试他们的演示,但无法让它工作。谢谢你的帮助!
我想我错过了一些东西,但这就是我正在做的事情(如http://demos.kendoui.com/web/grid/hierarchy.html)
我将.ClientDetailTemplateId(“Grid2Template”)添加到现有网格中。 然后我正在为Grid2Template编写代码。
我正在完成演示中显示的100%,但无法使用这两个步骤。有没有额外的参与?
这是一个非常简单的演示项目...... http://www.mediafire.com/?5qjyp40qfef7dkb
答案 0 :(得分: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会破坏客户端模板,并且网格无法显示详细信息模板。
在此更改后项目应该正常运行。
答案 1 :(得分:6)
很抱歉迟到了。无需删除AntiXss编码器。只需解码字符串Kendo吐出并在视图中原始显示。
所以而不是:
@(Html.Kendo().TabStrip().Items(…).ToClientTemplate())
这样做:
@Html.Raw(HttpUtility.HtmlDecode(Html.Kendo().TabStrip().Items(…).ToClientTemplate().ToString()))
答案 2 :(得分:3)
更新:FYI Telerik自2014年第一季度开始将我的解决方案纳入Kendo UI MVC,因此,如果您使用的是新版本,则不再需要这些“解决方案”。
取出AntiXssEncoder绝对是坏消息,你不应该这样做。我尝试过使用Jportelas和Marcelo的答案,但他们仍然没有完全解决问题。在处理必要的字段时,Kendo&amp; MVC将所需的字段验证器注入到javascript中,其中的空格以完全不同的方式编码(它使用表示&符号的转义UTF-8字符串,后跟英镑符号的html字符代码。它们一起代表一个空格搞砸了,对吧?!?)
I've created a Gist显示如何解决任何控件的问题,而不仅仅是Kendo UI。我还要求Telerik在下一个版本中包含该解决方案......请随意这样做。
HTH
答案 3 :(得分:0)
我的一个聪明的同事发现了类似的东西,他发现在客户端模板中用“”替换的空格生成了字符串,所以他这样做并且它有效:
@Html.Raw((Html.Kendo().Grid<..>...ToClientTemplate()..ToHtmlString().Replace(" ", " ")))
我们不想禁用AntiXSS,因为它就像放下你的防御。