MVC.NETでKENDO UIグリッドを使用しています。MVCのKENDOUIグリッド:いくつかの列でフィルタを非表示にする方法はありますか?
グリッドは、各列の列フィルタを表示するように構成されています。
私の列の中にはフィルタリングができないものがありますので、フィルタを非表示にしたいと考えています。
これをC#側から設定する方法はありますか? (CSSまたはJSを使用しない)。
MVC.NETでKENDO UIグリッドを使用しています。MVCのKENDOUIグリッド:いくつかの列でフィルタを非表示にする方法はありますか?
グリッドは、各列の列フィルタを表示するように構成されています。
私の列の中にはフィルタリングができないものがありますので、フィルタを非表示にしたいと考えています。
これをC#側から設定する方法はありますか? (CSSまたはJSを使用しない)。
、あなたはおそらくのようなものがあります:あなたはProductID
列が濾過可能でない場合
<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>
を、あなたが言う必要があります。
<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>
私が知る限り、フィルタリングしたくない列に対しては、columns.filterable
構成プロパティを 'false'に設定する必要があります。デフォルトは 'true'です(ドキュメント:columns.filterable )
これをC#側から行うことができるかどうかは、剣道グリッドがコード内でどのように初期化されているかによって異なります。あなたのコードで
私は質問にそれを言及しませんでした私はグリッドのAutoGenerate()機能を使用していたので、Filterableの設定に簡単にアクセスすることはできません。その場合の
つの回避策は次のとおりです。
var gb = Html.Kendo().Grid(data).Name("test");
gb.Columns(columns => { columns.AutoGenerate(true); });
// !!! Hide filter for first column in grid.
gb.Columns((columns) => { (columns.Container.Columns[0] as IGridBoundColumn).Filterable=false; });
gb.Filterable(filtering => filtering.Enabled(true));
gb.DataSource(ds => ds
.Ajax()
.ServerOperation(true)
.Model(model => model.Id("A"))
);
gb.Render();
あなたが列を設定していない場合、グリッドは、このようなデータバインドされたイベントのように、初期化された後、あなたは、フィルタボタンを隠すことができます。ここでは、特定のフィールド上のフィルタボタンを隠し、一つの方法です:
$("#MyGrid").find(".k-header[data-field='Pct_positive']").find(".k-grid-filter").css("visibility","hidden");
それらをすべて非表示にするには...クライアント側(jqueryの)剣道グリッドの
$("#MyGrid").find(".k-header").find(".k-grid-filter").css("visibility","hidden");
あなたが濾過可能に置くことができます:偽、 gridable全体に対してfilterable:trueを設定した後の個々の列について
例えば、
フィールド: "Margin01"、 幅:40、 濾過可能:偽、 タイトル: "0-"
私はcolumns.filterableは、すべての列に適用されると思います。私が見つけることができる個々の列を設定する方法はありません。 –
カラムごとに指定するには、filterable属性をfalseに設定して 'columns'配列にエントリを指定する必要があります。繰り返しますが、グリッドを作成するためにコードがどのように設定されているかによっては、これが不可能な場合があります –