1

グリッドビューでチェックボックス列を設定したい。次のコードはそれを行います:

gridSettings.PreRender = (sender, e) =>
{
    MVCxGridView gridView = sender as MVCxGridView;
    for (int i = 0; i < gridView.VisibleRowCount; i++)
    {
        gridView.Selection.SetSelection(i, (bool)gridView.GetRowValues(i, "IsAssigned"));
    }
};

しかし、約 100 万件のレコードがあるため、グリッド ビューの読み込み時間が長すぎます (2 分以上)。devexpress のため、すべてのレコードをページごとにループして、選択した行を見つけます (私のコレクションは IQueryable 型です)。この列を設定しようとしない場合、devexpress は IQueryable リストを使用するため、1 ページのデータのみをフェッチします。

表示されている行だけをループするにはどうすればよいですか?

4

1 に答える 1

1

次のようにコードを変更しました。コントローラーでtempdataを使用してselectedrowsを取得します。

gridSettings.PreRender = (sender, e) =>
{
    MVCxGridView gridView = sender as MVCxGridView;
    if ((gridView != null) && (ViewData["selectedRows"] != null))
    {
        int[] selectedRows = (int[])ViewData["selectedRows"];
        foreach (int key in selectedRows)
        {
             gridView.Selection.SelectRowByKey(key);
        }
    }
};    
于 2014-05-12T11:48:27.067 に答える