我在MVC.NET中使用了KENDO UI网格。
网格配置为显示每个列的列筛选器。
但是,我的一些列是不可过滤的,所以我想隐藏过滤器。
有没有一种方法可以从C#端配置?(不使用CSS或JS)。
发布于 2013-01-09 06:13:38
在你的代码中,你可能有类似这样的东西:
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<%: Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.ProductID).Groupable(false);
columns.Bound(p => p.ProductName);
columns.Bound(p => p.UnitPrice);
columns.Bound(p => p.UnitsInStock);
})
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Products_Read", "Grid"))
)
%>
</asp:Content>如果你不想过滤ProductID列,你应该说:
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<%: Html.Kendo().Grid(Model)
.Name("Grid")
.Columns(columns =>
{
columns.Bound(p => p.ProductID).Groupable(false).Filterable(false);
columns.Bound(p => p.ProductName);
columns.Bound(p => p.UnitPrice);
columns.Bound(p => p.UnitsInStock);
})
.Groupable()
.Pageable()
.Sortable()
.Scrollable()
.Filterable()
.DataSource(dataSource => dataSource
.Ajax()
.Read(read => read.Action("Products_Read", "Grid"))
)
%>
</asp:Content>发布于 2013-01-26 02:14:04
如果没有设置列,则可以在网格初始化后隐藏筛选器按钮,例如在databound事件中。以下是一种方法,隐藏特定字段上的过滤器按钮:
$("#MyGrid").find(".k-header[data-field='Pct_positive']").find(".k-grid-filter").css("visibility","hidden");为了把它们都藏起来。
$("#MyGrid").find(".k-header").find(".k-grid-filter").css("visibility","hidden");发布于 2013-01-09 04:25:20
据我所知,对于那些不想过滤的列,您必须能够将columns.filterable配置属性设置为'false‘,因为它缺省为'true’(参见文档:columns.filterable)
您是否可以从C#端完成此操作将取决于如何在您的代码中初始化Kendo Grid。
https://stackoverflow.com/questions/14223280
复制相似问题