Kendo UI Grid - 客户端模板:转义 # 符号

Posted

技术标签:

【中文标题】Kendo UI Grid - 客户端模板:转义 # 符号【英文标题】:Kendo UI Grid - Client Template: Escaping # sign 【发布时间】:2015-10-15 08:41:46 【问题描述】:

我正在使用 Kendo UI 的网格以及 Twitter Bootstrap。

Twitter Bootstrap 有一个内置的弹出窗口/模式,可以通过以下方式调用:

<a href="#" class="text-yellow" data-toggle="modal" data-target="#login">Login</a>

在我的 Kendo UI 网格中,我有一个自定义列模板:

   columns.Template(e =>  ).ClientTemplate("<span data-toggle='modal' data-target='#login' title='Flag Animals as Dead or Deceased' style='cursor:pointer;' class='glyphicon glyphicon-flag flag-dead text-red'></span>").Width(50);

这是我遇到问题的地方,如果您注意到了,您需要使用 # 号指定模态窗口的 Id。即data-target='#login'

每当我的网格模板中出现# 符号时,网格就会中断。我怎样才能摆脱这个标志?

【问题讨论】:

【参考方案1】:

你可以使用像这样data-target='\#login'这样的\字符来转义#

更新: 来自 Telerik 文档kendo templates

如果您的模板包含文字 # 字符,它不是绑定表达式的一部分,也不是脚本代码标记,那么您必须转义该字符,否则会导致模板编译错误。例如,如果在超链接 URL 或 CSS 颜色值中使用 # ,就会发生这种情况。 javascript 字符串中的文字 # 用 \\# 转义,而外部 html 脚本模板中的文字 # 用 \# 转义。

【讨论】:

请记住,C# Razor 本身需要转义反斜杠,JavaScript 也是如此。要在 Kendo 客户端模板中使用单个反斜杠来转义 #,我需要在我的 Razor 代码中输入 four

以上是关于Kendo UI Grid - 客户端模板:转义 # 符号的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Kendo UI Grid 中的列模板访问列名?

如何使用 MVC Razor 在编辑器模板中将 Kendo UI Grid 绑定到我的模型集合

带有条件的 Kendo Grid 客户端模板

如何在 Kendo UI Grid 中获得行号

Kendo UI Web Grid、虚拟滚动和动态复选框

如何使用 Kendo Grid 客户端模板将选定的单选按钮值发送到控制器?