C# 将ColumnMenu添加到Telerik MVC网格上的自定义工具栏
我有一个Telerik MVC网格在剃刀视图中。我添加了ColumnMenu选项,使用户能够在网格中显示/隐藏列。默认情况下,它会将其放置在列标题的上下文菜单中。我想更改它,使其在工具栏标题中作为自定义控件可用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");
@(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 </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
});