我正在寻找一种为KendoUI列创建自定义扩展方法的方法,这种方法允许我使用扩展方法轻松地将css类添加到标题或单元格本身。
现在我使用以下内容来整理标题和单元格的内容:
columns.Bound(x => x.Value).HeaderHtmlAttributes(new { @class = "cent" }).HtmlAttributes(new { @class = "cent" });
分css类是:
.cent { text-align:center; }
对我而言,这似乎有很多代码可以用来编写这么简单的东西。
我正在寻找的是一个创建自定义列构建器扩展方法的解决方案,我可以这样做:
columns.Bound(x => x.Value).CenterHeader().CenterCell();
其中CenterHeader()和CenterCell()将是自定义扩展方法,分别将此css类添加到标题和单元格。如果这可能是IMO,代码看起来会更清晰。
有没有人知道这样做的方法?
答案 0 :(得分:3)
为什么不直接创建这些扩展?
using Kendo.Mvc.UI.Fluent;
namespace MyNamespace
{
public static class MyExtensions
{
public static GridTemplateColumnBuilder<T> CenterHeader<T>(this GridTemplateColumnBuilder<T> builder) where T : class
{
return builder.HeaderHtmlAttributes(new { @class = "cent" });
}
.....
}
}
在Views/web.config
中添加此命名空间(以便您不应该一直导入它):
<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
<namespaces>
......
<add namespace="Kendo.Mvc.UI"/>
<add namespace="MyNamespace"/>
......
</namespaces>
</pages>
</system.web.webPages.razor>