8

私の Mvc Grid のコードを以下に示しますが、何らかの理由で、ソート可能およびフィルター可能属性が codePlex ドキュメントに記載されているとおりに機能しません。私はhtml5とbootstrap.cssを使用して.NET 4.5で開発しています:

@Html.Grid(Model.Item2).Named("ViewEntries").Columns(columns =>
                    {
                        columns.Add(c => c.entryName).Titled("Entry Name").Sortable(true).Filterable(true);
                        columns.Add(c => c.entryDate).Titled("Date").Sortable(true);
                        columns.Add(c => c.entryDetails).Titled("Details").Sortable(true);
                        columns.Add().Titled("Name1").RenderValueAs(c => Name1((int)c.name1)).Sortable(true).Filterable(true);
                        columns.Add().Titled("Name2").RenderValueAs(c => Name2((int)c.name2)).Sortable(true).Filterable(true);
                        columns.Add().Titled("Name3").RenderValueAs(c => Name3((int)c.name3)).Sortable(true).Filterable(true);
                    }).WithPaging(10)

どんな助けでも大歓迎です、ありがとう。

4

6 に答える 6

14

これがうまくいかなかったのは、そもそも gridmvc.css が実際にはレイアウト ファイルで参照されていなかったからです。追加するとすぐに、フィルタリングは通常レンダリングされた列で意図したとおりに機能します。

今私が抱えている問題は、htmlヘルパーを介してレンダリングされた列でフィルタリングを機能させることですが、これには、カスタムのフィルター可能なウィジェットを作成するための調査が必要です。みんな助けてくれてありがとう=]

于 2014-09-19T16:47:07.870 に答える
2

以下のようにコードを変更します

@Html.Grid(Model.Item2).Named("ViewEntries").Columns(columns =>
                    {
                        columns.Add(c => c.entryName).Titled("Entry Name").Sortable(true).Filterable(true);
                        columns.Add(c => c.entryDate).Titled("Date").Sortable(true);
                        columns.Add(c => c.entryDetails).Titled("Details").Sortable(true);
                        columns.Add().Titled("Name1").RenderValueAs(c => Name1((int)c.name1)).Sortable(true).Filterable(true);
                        columns.Add().Titled("Name2").RenderValueAs(c => Name2((int)c.name2)).Sortable(true).Filterable(true);
                        columns.Add().Titled("Name3").RenderValueAs(c => Name3((int)c.name3)).Sortable(true).Filterable(true);
                    }).WithPaging(10).Sortable(true).Filterable(true).WithMultipleFilters()

google chrome で Inspect 要素を使用します (Grid タイトル バーを選択し、右ボタンをクリックして、Inspect 要素を使用します)。次の画像のクラスが表示されている場合、問題は css または js のいずれかが原因です。つまり、クラス名が で始まることを意味します。 "grid-" を実行し、Grid-filter-btn が DOM でレンダリングされているかどうかを確認します

ここに画像の説明を入力

于 2014-09-18T09:35:41.363 に答える
0

私の場合、スタイルの競合があったため、フィルタリングが機能しませんでした。@section を削除し、@Styles (以下を参照) のみを使用すると、フィルタリングが機能し始めました。

@* commented because of styles conflict
    @section styles{
        @Styles.Render("~/Content/Gridmvc")
    }*@

@Styles.Render("~/Content/Gridmvc")

@section scripts{
    @Scripts.Render("~/bundles/Gridmvc")
}

github の簡略化されたソリューションへのリンクを添付しています: https://github.com/sam-klok/WebAppGrid

于 2022-01-23T19:54:28.873 に答える