2012-07-04 6 views
1

у меня есть этот код в мой контроллер контроллера:Как использовать DevExpress GridView, без обратного вызова

List<TResult> list = db.GetBigData(); 
return PartialView("GridViewPartialView", list); 

Вид:

@Html.DevExpress().GridView(
    settings => 
    { 
     settings.Name = "gvGrouping"; 
     settings.CallbackRouteValues = new { Controller = "Display", Action = "GridViewPartialView" }; 
     settings.SettingsBehavior.AllowSort = false; 
     settings.Width = System.Web.UI.WebControls.Unit.Percentage(100); 
     settings.SettingsPager.Visible = false; 

//create many column 
     settings.Settings.ShowGroupPanel = true; 

     }; 
    }).Bind(Model).GetHtml() 

На первом запуске, контроллер выполняет метод GetBigData. В представлении показано, но все узлы свернуты. Если я щелкнул узел, он обратится к контроллеру, который снова создаст новый запрос в базу данных. То же самое происходит при сортировке. Я не хочу, чтобы каждый раз обращался к базе данных, так как я могу избежать обратного вызова?

ответ

3

GridView - это серверный элемент управления, который выполняет все вычисления данных на сервере и отправляет клиенту только небольшую часть. Поскольку клиентская сторона не имеет всех доступных данных, она не может повторно сортировать или повторно группировать ее, когда это необходимо. Вместо этого он отправляет обратный вызов серверу.

Все, что вы можете сделать, это ускорить обратный вызов. Первое, что вам нужно сделать, это включить режим сервера, который значительно уменьшит количество данных, переданных из базы данных. Вот как вы можете включить его: http://documentation.devexpress.com/#AspNet/CustomDocument3726

Смежные вопросы