我正在 NopCommerce 的 Telerik 网格上进行一些定制。我想在名为 PercentageCompleted 的一列中实现过滤。现在我怎样才能做到这一点?
问问题
2424 次
2 回答
3
您可以在 Telerik Demo site for MVC Extension 上查看以下 Grid 示例:
http://demos.telerik.com/aspnet-mvc/razor/grid
我们将此演示称为 Telerik MVC Extension based Grid 的第一次外观。在此示例中,网格绑定到 Northwind 数据库的订单表。这是剃刀查看代码:
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Width(100);
columns.Bound(o => o.ContactName).Width(200);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(120);
})
.DataBinding(dataBinding =>
{
dataBinding.Server().Select("FirstLook", "Grid", new { ajax = ViewData["ajax"] });
dataBinding.Ajax().Select("_FirstLook", "Grid").Enabled((bool)ViewData["ajax"]);
})
.Scrollable(scrolling => scrolling.Enabled(true))
.Sortable(sorting => sorting.Enabled(true))
.Pageable(paging => paging.Enabled(true))
.Filterable(filtering => filtering.Enabled(true))
.Groupable(grouping => grouping.Enabled(true))
.Footer((true)
)
可以看到,我们需要先设置全局开关
.Filterable(filtering => filtering.Enabled(true))
它告诉网格它是否可过滤。一旦我们打开这个开关,列集合中的所有列都会;默认情况下对它们进行过滤。
在您的情况下,您只想启用过滤器一列。为了实现这一点,您需要手动关闭那些不需要的列上的过滤功能。例如,在上面的代码中,我想禁用 OrderID 和 OrderDate 列上的过滤器选项。实现这一点的代码如下:
@(Html.Telerik().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(o => o.OrderID).Width(100).Filterable(false);
columns.Bound(o => o.ContactName).Width(200);
columns.Bound(o => o.ShipAddress);
columns.Bound(o => o.OrderDate).Format("{0:MM/dd/yyyy}").Width(120).Filterable(false);
})
.DataBinding(dataBinding =>
{
dataBinding.Server().Select("FirstLook", "Grid", new { ajax = ViewData["ajax"] });
dataBinding.Ajax().Select("_FirstLook", "Grid").Enabled((bool)ViewData["ajax"]);
})
.Scrollable(scrolling => scrolling.Enabled(true))
.Sortable(sorting => sorting.Enabled(true))
.Pageable(paging => paging.Enabled(true))
.Filterable(filtering => filtering.Enabled(true))
.Groupable(grouping => grouping.Enabled(true))
.Footer((true)
)
希望这能回答你的问题。
Lohith (Tech Evangelist, Telerik India)
于 2012-08-20T19:17:28.373 回答
2
像这样将 .Filterable 添加到网格定义中
@Html.Telerik().Grid(Model)
.Name("Grid")
.Filterable()
这使得所有具有简单数据类型的列都可以过滤。要指定列,请添加
.Filterable(true)
或者
.Filterable(false)
到每个列定义
于 2012-08-20T13:55:50.940 回答