如何在 Kendo 网格列中调用静态方法
How to call a static method in Kendo Grid column
我使用 Kendo 网格来显示我的 table 字段,如下所示:
@(Html.Kendo().Grid<MyProject.Admin.Models.MyViewModel>(Model)
.Name("id")
.Columns(columns =>
{
columns.Bound(c => c.ID).Filterable(false);
columns.Bound(c => c.ModelNo).Filterable(false);
它工作正常,但其中一个字段是 userId,一个 GUID 字段,我想调用一个静态方法,其中 returns 用户名。我已经创建了这个方法。方法是
public static string GetUserName(Guid UserId)
{
var db = new ApplicationDbContext();
var user = (from k in db.Users where k.Id == UserId.ToString() select k).FirstOrDefault();
if(user != null)
{
return user.UserName;
}
else
{
return "-";
}
}
所以我需要在 Kendo 网格中调用此方法,例如:
columns.Bound(c => c.UserID).Template(@<text>
<strong>@Tools.GetUserName(c.UserID)</strong>
</text>);
columns.Bound(p => p.Title).Template(@<text>
<strong>@item.Title</strong>
</text>);
简单地生成javascript像这样
columns: [{
...
template: "<strong>#:Title#</strong>"
}],
和 template: "<text><strong>#:Title#</strong></text>"
在客户端的 Kendo UI 框架中由 templating engine 进一步处理。因此,将#:Title# 替换为任何 C# 函数都不会在浏览器端被识别。
我使用 Kendo 网格来显示我的 table 字段,如下所示:
@(Html.Kendo().Grid<MyProject.Admin.Models.MyViewModel>(Model)
.Name("id")
.Columns(columns =>
{
columns.Bound(c => c.ID).Filterable(false);
columns.Bound(c => c.ModelNo).Filterable(false);
它工作正常,但其中一个字段是 userId,一个 GUID 字段,我想调用一个静态方法,其中 returns 用户名。我已经创建了这个方法。方法是
public static string GetUserName(Guid UserId)
{
var db = new ApplicationDbContext();
var user = (from k in db.Users where k.Id == UserId.ToString() select k).FirstOrDefault();
if(user != null)
{
return user.UserName;
}
else
{
return "-";
}
}
所以我需要在 Kendo 网格中调用此方法,例如:
columns.Bound(c => c.UserID).Template(@<text>
<strong>@Tools.GetUserName(c.UserID)</strong>
</text>);
columns.Bound(p => p.Title).Template(@<text>
<strong>@item.Title</strong>
</text>);
简单地生成javascript像这样
columns: [{
...
template: "<strong>#:Title#</strong>"
}],
和 template: "<text><strong>#:Title#</strong></text>"
在客户端的 Kendo UI 框架中由 templating engine 进一步处理。因此,将#:Title# 替换为任何 C# 函数都不会在浏览器端被识别。