2014-05-12 137 views
0

我想在gridview中設置複選框列。以下代碼做到這一點:devexpress gridview複選框列選擇?

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列表,因此它只提取一個分頁數據。

我該怎麼做只循環可見行?

+0

在這裏回答https://www.devexpress.com/Support/Center/Question/Details/Q291307 – Yahya

回答

0

我改變了我的代碼,如下,我得到控制器中的tempdata selectedrowswards。

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); 
     } 
    } 
};