2

私のコントローラーには

    var myTempModel = (from f in db.BA_TEMP_RESHOP_IMPORT
                       where f.WCCR_ID == WccrId
                       select new DataImportViewModel
                       {
                        //Set properties…
                       });



return View(myTempModel.ToPagedList(currentPage,
               maxRecords));

私の現在のViewModel

    public class DataImportViewModel
    {

        public string WccrId { get; set; }
        public string Status                { get; set; }
        public string Note { get; set; }

    }

私のビューモデルのリファレンスは.

@model  PagedList.IPagedList<Proj.ViewModels.DataImportViewModel>

各アイテムはdisplayForを使用しています。これは正常に機能しますが、ページネーション全体で値を保持するチェックボックスを追加する必要があります

DataImportViewModel から返された各行には適用されず、ページの上部に 1 つのチェックボックスを追加したいと考えています。

これを行うには2つの方法があると思いますが、どちらを実装するか、またはどちらが最適かはわかりません。新しいviewModelを作成するか、チェックボックスの値をセッション変数に渡す方が良いですか?

このような新しいビューモデルを作成しようとしましたが、戻り値の View(…) コードを変更する方法や、ビューの @model に何を使用する必要があるかさえわかりません。

public class DisplayViewModel
{
    public IEnumerable<DataImportViewModel> dataImport { get; set; }
    public Boolean useDefault { get; set; }
}

よろしくお願いします。私が省略した可能性のある役立つ情報があれば教えてください。乾杯

4

1 に答える 1

2

私は似たようなことをしました:
ブールフィールドを使用してPagedListエンティティ(ページ番号、ページあたりのレコード数、並べ替え方向などのデータを格納する場所)を実行します...ページのnrを渡すと're in ...また、boolバージョンをコントローラーに送り返して、チェックボックスに値を渡すことができるようにします。
ターゲットdivを更新することを忘れないでください(targetdiv =ビュー内でエンティティが表示されるdiv)。私の解決策には次のようなものが含まれていました:

public class GridModel<T> : GridOperations
    {
        // Constructor
        public GridModel()
        {
            // Define any default values here...
            this.PageSize = 20;
            this.NumericPageCount = 20;
        }
    public IEnumerable<T> Data { get; set; }

次のようにデータをモデルに渡しました。

@model  Proj.ViewModels.GridModel<Proj.ViewModels.DataImportViewModel>

グリッド操作クラス内で、表示される値(ページサイズ、数値ページ数、並べ替え方向、 sortByなど)。私の観点からは、これはより理にかなっています..しかし、私は偏見があるかもしれません:)。DataImportViewModel内でその値を渡すことができない場合は、グリッド思考に向けて変更することをお勧めします

于 2012-06-07T07:08:01.750 に答える