public void BindGrid(bool bindFlag) { if (!bindFlag) { return; } if (_grid.DataKeyNames.Length == 0) { throw new Exception(string.Format("The data key should be specified for grid '{0}'", _grid.ID)); } string fieldId = _grid.DataKeyNames[0]; int countOfOrderByFields = _businessQuery.Query.OrderByTerms.Cast <OrderByTerm>().Count(term => term.Field.ToLower() == fieldId.ToLower()); if (countOfOrderByFields == 0) { _businessQuery.Query.OrderByTerms.Add(new OrderByTerm(fieldId, OrderByDirection.Descending)); } if (countOfOrderByFields == 2) { _businessQuery.Query.OrderByTerms.RemoveAt(1); } IList list; // Search functionality if (HttpContext.Current.Request.QueryString["SearchString"] != null) { var searchFilter = new SearchFilter { SearchPattern = HttpContext.Current.Request.QueryString["SearchString"] }; searchFilter.AppendSimpleSearchPattern(_businessQuery.Query); list = DataPortal.Instance.Retrieve(_businessQuery.Query); UpdatePagerTotalCount(); _businessQuery.Reinitialize(); } else { list = DataPortal.Instance.Retrieve(_businessQuery.Query); } _grid.DataSource = list; if (list.Count > 0 && list[0] is Request) { var teamCache = new TeamCache(); teamCache.PreloadChilds(list); var requestersCountCache = new RequestersCountCache(); requestersCountCache.PreloadChilds(list); } if (GridBindingStart != null) { GridBindingStart(this, new GridControllerArgs(_grid, list)); } _grid.DataBind(); SaveQuery(); UpdateSortDirectionSign(); if (GridBindingComplete != null) { GridBindingComplete(); } }