1

NopCommerceでtelerikグリッドにいくつかカスタマイズして取り組んでいます。PercentageCompletedという名前の1つの列でフィルタリングを実行したいと思います。どうすればこれを達成できますか?

4

2 に答える 2

3

MVC拡張機能のTelerikデモサイトのグリッドの次の例を見ることができます。

http://demos.telerik.com/aspnet-mvc/razor/grid

このデモを、TelerikMVC拡張ベースのグリッドの最初の外観と呼びます。この例では、グリッドはNorthwindデータベースの注文テーブルにバインドされます。Razorビューコードは次のとおりです。

@(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))

これは、グリッドがフィルター可能かどうかをグリッドに通知します。このスイッチをオンにすると、列コレクションのすべての列がオンになります。デフォルトでは、それらにフィルターを適用します。

あなたの場合、フィルターを1列だけ有効にしたい。これを実現するには、不要な列のフィルタリング機能を手動でオフにする必要があります。たとえば、上記のコードでは、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 に答える