2014-05-12 86 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); 
     } 
    } 
};