如何在Kendo Grid单元格上显示图标?

时间:2015-08-25 22:36:39

标签: asp.net-mvc image datagridview kendo-grid kendo-asp.net-mvc

我有一个名为Priority的表,它有一个名为IconUrl的列,用于存储图标的路径,如下所示:

| ID     | Priority      | IconUrl       
------------------------------------------------------------| 
| 0      | Normal        | /../../Content/icons/normal.png  |
| 1      | Urgent        | /../../Content/icons/urgent.png  |
| 2      | Blocker       | /../../Content/icons/blocker.png |

我想根据Kendo Grid上每条记录的IconUrl值显示图标。我尝试了一些如下所示的方法,但它们都没有解决问题。如何设法只显示图标图像?

columns.Bound(c => c.Priority).ClientTemplate("<img src='" + Url.Content("~/") + "#=IconUrl#' height='62' width='62'/>");

columns.Bound(c => c.Priority).ClientTemplate("<img src='" + Url.Content("#=Model.IconUrl#") + "'/>'");

1 个答案:

答案 0 :(得分:2)

问题可能是由您网址开头的'/../../'造成的。

打开浏览器开发人员工具,查看单元格可以看到哪些URL。

如果您的内容文件夹位于您的主目录或项目目录中,那么使用Priority col中的文本重新创建网址可能会有效。

columns.Bound(c => c.Priority).ClientTemplate("<img src='" + Url.Content("~/Content/icons/") + "#=Priority.toLowerCase()#.png' height='62' width='62'/>");

Url.Content function is used to map virtual paths。例如,在其他应用中使用应用。如果在传递给函数的字符串的开头没有波浪号,它将只返回url字符串。

因此,在您的第二个示例中,调用"<img src='" +Url.Content("#=IconUrl#") + "'/>'"将产生与<a src='#=IconUrl#'>

相同的结果