【问题标题】:KendoUI Column Center Custom MVC Extension MethodKendo UI Column Center 自定义 MVC 扩展方法
【发布时间】:2014-08-19 22:00:53
【问题描述】:

我正在寻找一种为 KendoUI 列创建自定义扩展方法的方法,该方法允许我使用扩展方法轻松地将 css 类添加到标题或单元格本身。

现在我正在使用以下内容将标题和单元格的内容居中:

columns.Bound(x => x.Value).HeaderHtmlAttributes(new { @class = "cent" }).HtmlAttributes(new { @class = "cent" });

cent css 类在哪里:

.cent { text-align:center; }

在我看来,要为这么简单的事情编写很多代码。

我正在寻找的是一种创建自定义列构建器扩展方法的解决方案,我可以在其中执行以下操作:

columns.Bound(x => x.Value).CenterHeader().CenterCell();

CenterHeader() 和 CenterCell() 将是自定义扩展方法,将这个 css 类分别添加到标题和单元格中。如果 IMO 可行,代码看起来会更简洁。

有人知道怎么做吗?

【问题讨论】:

    标签: css kendo-ui kendo-grid extension-methods kendo-asp.net-mvc


    【解决方案1】:

    为什么不直接创建这些扩展?

    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>
    

    【讨论】:

      猜你喜欢
      • 2022-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-10
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 2013-08-09
      相关资源
      最近更新 更多