1

私はグリーンフィールド MVC4 プロジェクトに取り組んでおり、ページングと並べ替えをサポートするための優れた MVC グリッドが必要です (グリッドではなく、自分でページングと並べ替えを処理したい)。また、グリッドが軽量で (html マークアップとクエリ パラメーターを制御したいので)、列にラムダ式を使用できることも気に入っています。

以前、古い MVC2 プロジェクトで MvcContrib Grid を使用したことがあり、拡張性に非常に満足していました。このプロジェクトで webhelper グリッドを少し試してみましたが、MvcContrib グリッドほど拡張性がないようです。ただし、MvcContrib プロジェクトは、それほど積極的に維持されていないようです。私が見る限り、メイン バージョンは MVC2 用であり、まったく新しいグリーンフィールド プロジェクトで互換性を発行したくありません。

MvcContrib プロジェクトが MVC4 の新しいバージョンをリリースする予定かどうかは誰にもわかりませんか? 現在、MVC 用の軽量で最新のグリッドは他にありますか?

UPDATE レンダラーを交換する可能性のあるMvcContribに大まかに基づいた構文スタイルで、独自のグリッドコンポーネント(およびページャーコンポーネント)を作成することになりました。

4

1 に答える 1

3

jQuery Datatables http://www.datatables.net/を調べましたか

最近、MVContrib Grid から jQuery Datatables に移行しました。彼らはかなり素晴らしいです。

テーブルを初期化する方法は次のとおりです。

BindTable: function () {
        var that = this;
        this.Table = $('#sorting-advanced');
        var tableStyled = false;

        this.Table.dataTable({
            'aoColumnDefs': [
                { 'aTargets': [1], 'sType': 'num-html' },
                { 'aTargets': [3], 'sType': 'currency' },
                { 'aTargets': [5], 'bSortable': false, }
            ],
            'sPaginationType': 'full_numbers',
            'sDom': '<"dataTables_header"lfr>t<"dataTables_footer"ip>',
            'fnDrawCallback': function (oSettings) {
                // Only run once
                if (!tableStyled) {
                    that.Table.closest('.dataTables_wrapper').find('.dataTables_length select').addClass('select').styleSelect();
                    tableStyled = true;
                }
            }
        });
    },

これがカミソリビューです

  <table class="table responsive-table" id="sorting-advanced">
            <thead>
                <tr>
                    <th scope="col">Date</th>
                    <th scope="col">Document #</th>
                    <th scope="col">Tenant</th>
                    <th scope="col">Amount</th>
                    <th scope="col" class="align-center">Reconciled</th>
                    <th scope="col" class="align-center">Actions</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var item in Model.Items)
                {
                    <tr>
                        <td>@item.Date.ToShortDateString()</td>
                        <td>
                            <a href="@Url.Action("Edit", new {id = item.Id})">@item.Number</a>
                        </td>
                        <td>@item.Contact.DisplayName</td>
                        <td>@item.Amount.ToString("C2")</td>
                        <td class="align-center">
                          @Html.CheckBoxFor(x => item.Reconciled, new {id = item.Id})
                        </td>
                        <td class="align-center vertical-center">
                            <span class="button-group compact">

                                <a href="@Url.Action("Edit", new {id = item.Id})" 
                                   class="button icon-pencil with-tooltip"
                                   title="Edit Payment"></a>

                                <a href="#" id="@item.Id" 
                                   class="button icon-trash with-tooltip confirm-delete"
                                   title="Delete Payment"></a>
                            </span>
                        </td>
                    </tr>
                }
            </tbody>
        </table>
于 2013-01-08T14:10:36.400 に答える