0
我有一个显示多列的MVC telerik网格。我想要做的是给用户选择混合和匹配他们看到的列,例如,如果网格可以显示10列,界面可以给用户3列以查看数据,并且他们将不得不选择3个网格中的每一个将显示什么。选择要在电网中显示的列?
我在想它和.Columns命令有关,所以用户可以通过GUI修改它吗?
我有一个显示多列的MVC telerik网格。我想要做的是给用户选择混合和匹配他们看到的列,例如,如果网格可以显示10列,界面可以给用户3列以查看数据,并且他们将不得不选择3个网格中的每一个将显示什么。选择要在电网中显示的列?
我在想它和.Columns命令有关,所以用户可以通过GUI修改它吗?
当允许用户查看网格应该代表的数据的特定视图时,您有几个选项。虽然为每个用户使用不同的网格声明是一种方法,但最简单的方法可能是显示或隐藏同一网格的列。
这可以通过利用Grid组件附带的内置列选择器来实现,可以在this demo中看到。右键单击任何标题可为用户提供一个简单的界面来选择要显示的列。
或者,您可以使用hideColumn/showColumn客户端API调用,它可以采用列绑定的字段名称或索引作为参数。一个简单的例子(虽然它只隐藏你定义的列):
<input type="text" id="columnHider"/>
<br />
<button type="button" id="columnButton">Click</button>
@model IEnumerable<Customer>
@(Html.Telerik().Grid(Model)
.Name("TelerikGrid")
.Columns(columns =>
{
columns.Bound(c => c.CustomerID);
columns.Bound(c => c.CompanyName);
columns.Bound(c => c.ContactName);
columns.Bound(c => c.Address);
columns.Bound(c => c.City);
})
.Pageable(pageSettings => pageSettings.Enabled(true).PageSize(10))
.ColumnContextMenu()
)
<script type="text/javascript">
$(document).ready(function() {
$("#columnButton").click(function() {
var grid = $("#TelerikGrid").data("tGrid");
var columnString = $("#columnHider").val();
grid.hideColumn(columnString);
});
});
</script>
这允许你定义你自己的接口来隐藏/显示列。
当单击一个单独的按钮或点击某个按钮时,是否可以使列上下文菜单显示?我问,因为我想让它在触摸设备上工作.. – tweetypi 2012-01-06 11:38:16
没有真正的方法来显示相同的标题上下文菜单,但你可以肯定地创建自己的自定义用户界面。您所要做的就是定义何时使用hideColumn()或showColumn()的逻辑。 – carlbergenhem 2012-01-09 16:00:15