Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ColumnMenu添加到Telerik MVC网格上的自定义工具栏_C#_Asp.net Mvc_Telerik_Kendo Grid - Fatal编程技术网

C# 将ColumnMenu添加到Telerik MVC网格上的自定义工具栏

C# 将ColumnMenu添加到Telerik MVC网格上的自定义工具栏,c#,asp.net-mvc,telerik,kendo-grid,C#,Asp.net Mvc,Telerik,Kendo Grid,我有一个Telerik MVC网格在剃刀视图中。我添加了ColumnMenu选项,使用户能够在网格中显示/隐藏列。默认情况下,它会将其放置在列标题的上下文菜单中。我想更改它,使其在工具栏标题中作为自定义控件可用 @(Html.Kendo().Grid<StockReport>() .Name("grid") .Columns(columns => { columns.Bound(p => p.SohQty).Title("Quantity");

我有一个Telerik MVC网格在剃刀视图中。我添加了ColumnMenu选项,使用户能够在网格中显示/隐藏列。默认情况下,它会将其放置在列标题的上下文菜单中。我想更改它,使其在工具栏标题中作为自定义控件可用

@(Html.Kendo().Grid<StockReport>()
  .Name("grid")
  .Columns(columns =>
    {
      columns.Bound(p => p.SohQty).Title("Quantity");
      columns.Bound(p => p.StockName).Title("Item Name");
      ...
  .ToolBar(tools => tools.Excel())
  .ToolBar(tools => tools.Custom()
    .Text("Customise")
    .WhatToPutHere???
    )
  ...
  .ColumnMenu()  //I want to reuse this but in the custom toolbar
@(Html.Kendo().Grid())
.名称(“网格”)
.列(列=>
{
列绑定(p=>p.qty).Title(“数量”);
columns.Bound(p=>p.StockName).Title(“项目名称”);
...
.ToolBar(tools=>tools.Excel())
.ToolBar(tools=>tools.Custom()
.Text(“自定义”)
.放什么在这里???
)
...
.ColumnMenu()//我想在自定义工具栏中重新使用它
我认为它更适合放在工具栏标题中,因为它是关于所有列的,而列的上下文标题中的其他项只与该列相关(过滤、排序)


我唯一不知道的是,为了利用现有的ColumnMenu控件,我可以在自定义工具栏上放置什么。在一位同事的帮助下,我们发现了一个未记录的js,它允许我们这样做。首先,您需要创建一个自定义工具栏:

.ToolBar(toolbar =>
 {
   toolbar.Template(@<text>
                       <div class="toolbar" id="showColumnToolbar">
                           <label >Show Colums&nbsp;</label>
                           <span id="showColumn"></span>
                       </div>
                    </text>);
})
var grid = $("#grid").data("kendoGrid");
$("#showColumn").kendoColumnMenu({
  filterable: false,
  sortable: false,
  dataSource: grid.dataSource,
  columns: grid.columns,
  owner: grid
});