【问题标题】:How to remove "column name: " from grouped column in Telerik MVC (razor) grid control如何从 Telerik MVC(剃刀)网格控件中的分组列中删除“列名:”
【发布时间】:2014-08-08 16:22:10
【问题描述】:

我正在考虑将 Telerik MVC3 Razor 网格控件用于一个项目。

分组效果很好,但是否可以从分组中删除“列名:”? 例如

"Product Size: Large"
"Product Size: Small"
"Product Size: Medium"

改成

"Large"
"Small"
"Medium"

如果我将 GroupHeaderTemplate 添加到 Column(c=>c...) 那么我可以让文本说出我想要的任何内容...但是稍后也会在我的网格中显示相同的列(在分组列)

@(Html.Telerik().Grid(Model)
    .Name("Grid")
    .Columns(columns =>
    {
        columns.Bound(c => c.SheetLine).Visible(false)
            .Aggregate(a => a.Count())
            .GroupHeaderTemplate(@<text>@item.Key (@item.Count)</text>);
        columns.Bound(c => c.VSACode);
        columns.Bound(c => c.Bucket100)
            .Title("First");
    })
    .Groupable(groupable => groupable.Groups(group =>
                        {
                            group.Add(g => g.SheetLine);
                            group.Add(g => g.PrintLine);
                            group.Add(g => g.SelectionLine);
                        }).Visible(false))
)

展示

@(Html.Telerik().Grid(Model)
        .Name("Grid")
        .Columns(columns =>
        {
            columns.Bound(c => c.SheetLine)
                .Aggregate(a => a.Count())
                .GroupHeaderTemplate(@<text>@item.Key</text>);
            columns.Bound(c => c.VSACode);
            columns.Bound(c => c.Bucket100)
                .Title("First");
        })
        .Groupable(groupable => groupable.Groups(group =>
                            {
                                group.Add(g => g.SheetLine);
                                group.Add(g => g.PrintLine);
                                group.Add(g => g.SelectionLine);
                            }).Visible(false))
    )

展示

但我找不到中间立场来摆脱第二个“SheetLine”,所以它只是一个分组列并且有一个 groupheadertemplate。

【问题讨论】:

    标签: c# asp.net-mvc-3 razor telerik-mvc


    【解决方案1】:

    您可以简单地应用以下技术:

       @(Html.Telerik().Grid(Model)
            .Name("Grid")
            .Columns(columns =>
            {
               columns.Bound(c => c.SheetLine)
                    .Aggregate(a => a.Count())
                    .GroupHeaderTemplate(@<text>@item.Key (@item.Count)</text>).Hidden(true);
    
                columns.Bound(c => c.PrintLine)           
                    .GroupHeaderTemplate(@<text>@item.Key</text>).Hidden(true);
    
                columns.Bound(c => c.SelectionLine)          
                    .GroupHeaderTemplate(@<text>@item.Key</text>).Hidden(true);
    
                columns.Bound(c => c.VSACode);
                columns.Bound(c => c.Bucket100)
                    .Title("First");
            })
            .Groupable(groupable => groupable.Groups(group =>
                                {
                                    group.Add(g => g.SheetLine);
                                    group.Add(g => g.PrintLine);
                                    group.Add(g => g.SelectionLine);
                                }).Visible(false))
        )
    

    【讨论】:

      【解决方案2】:

      看起来像是 Telerik 支持论坛上报告的以下问题:

      http://www.telerik.com/community/forums/aspnet-mvc/grid/custom-label-for-group.aspx

      目前无法对此进行配置,但您可以将分组所在的列设为隐藏 (Hidden())。只需确保将该列放在列表的最后以支持 IE。

      所以基本上你必须实现一个解决方案,将你最后分组的列放在网格的定义列列表中,然后你必须隐藏它们(隐藏()......不可见(假)!) .

      【讨论】:

      • 您的答案正是我想要的。谢谢。
      【解决方案3】:

      试试这个,在网格数据绑定上:

      if($('#grid tbody .k-grouping-row:contains("FieldName") td p').length != 0)
      {
        $('#grid tbody .k-grouping-row:contains("FieldName") td p')[0].innerHTML = "<[a]  tabindex=\"-1\" class=\"k-icon k-i-collapse\" href=\"#\" /> Your text";
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-16
        • 2019-09-16
        • 1970-01-01
        • 1970-01-01
        • 2012-05-23
        • 1970-01-01
        • 1970-01-01
        • 2019-03-03
        相关资源
        最近更新 更多