2016-10-06 3 views
0

Я загружаю более 50000 записей в формах выигрыша в сетке. как оптимизировать и заставить сетку загружаться быстро (мгновенно) ?. есть ли опция для загрузки фильтра по умолчанию в фильтр столбцов решетки telerik rad.Telerik RadGrid Производительность слишком медленная в Winforms

Me.cncFilesGridRad.MasterTemplate.AllowAddNewRow = False 
      Me.cncFilesGridRad.MasterTemplate.AllowDeleteRow = False 
      Me.cncFilesGridRad.MasterTemplate.ShowRowHeaderColumn = False 
      Me.cncFilesGridRad.MasterTemplate.ShowHeaderCellButtons = False 
      Me.cncFilesGridRad.UseScrollbarsInHierarchy = True 
      Me.cncFilesGridRad.ShowGroupPanel = False 
      Me.cncFilesGridRad.HorizontalScroll.Enabled = True 
      Me.cncFilesGridRad.MasterTemplate.EnableSorting = True 
      Me.cncFilesGridRad.MasterTemplate.EnableGrouping = False 
      Me.cncFilesGridRad.EnableFiltering = True 
      Me.cncFilesGridRad.ShowHeaderCellButtons = True 

      Me.cncFilesGridRad.MasterTemplate.EnableFiltering = True 
      Me.cncFilesGridRad.ShowFilteringRow = False 
      Me.cncFilesGridRad.MasterTemplate.ShowFilterCellOperatorText = False 
      Me.cncFilesGridRad.MasterTemplate.AllowCellContextMenu = False 
      Me.cncFilesGridRad.EnableFastScrolling = True 
      Me.cncFilesGridRad.BeginUpdate() 
      Me.cncFilesGridRad.DataSource = GlobalVariables.CNCFilesCollection 

      Me.cncFilesGridRad.AutoSizeRows = True 

      Me.cncFilesGridRad.TableElement.RowHeight = 60 
      Me.cncFilesGridRad.TableElement.FilterRowHeight = 40 
      Me.cncFilesGridRad.GridViewElement.PagingPanelElement.NumericButtonsCount = 25 
      Me.cncFilesGridRad.VirtualMode = True 

      AddTemplateToGrid() 

      Me.cncFilesGridRad.MasterTemplate.Templates(0).AllowAddNewRow = False 
      Me.cncFilesGridRad.MasterTemplate.Templates(0).AllowDeleteRow = False 
      Me.cncFilesGridRad.MasterTemplate.Templates(0).AllowEditRow = False 


      For Each col As GridViewDataColumn In Me.cncFilesGridRad.Columns 
       col.IsVisible = False 
      Next 

      For Each col As GridViewDataColumn In Me.cncFilesGridRad.MasterTemplate.Templates(0).Columns 
       col.IsVisible = False 
      Next 

      'child row column 
      column = Me.cncFilesGridRad.MasterTemplate.Templates(0).Columns("Name") 
      column.HeaderText = "Name" 
      column.IsVisible = True 
      column.ReadOnly = True 

      'parent rows 
      checkColumn = New GridViewCheckBoxColumn() 
      checkColumn.DataType = GetType(Integer) 
      checkColumn.HeaderText = "Select" 
      checkColumn.Name = "Select" 
      checkColumn.IsVisible = True 
      checkColumn.EditMode = EditMode.OnValueChange 
      checkColumn.Width = 83 
      Me.cncFilesGridRad.MasterTemplate.Columns.Add(checkColumn) 
      Me.cncFilesGridRad.Columns.Move(checkColumn.Index, 0) 

      commandColumn = New GridViewCommandColumn() 
      commandColumn.Name = "EditColumn" 
      commandColumn.UseDefaultText = True 
      commandColumn.DefaultText = "Edit" 
      commandColumn.FieldName = "Edit" 
      commandColumn.Width = 50 
      commandColumn.TextAlignment = ContentAlignment.MiddleCenter 
      Me.cncFilesGridRad.MasterTemplate.Columns.Add(commandColumn) 
      Me.cncFilesGridRad.Columns.Move(commandColumn.Index, 1)  

      descriptor.PropertyName = "Name" 
      Me.cncFilesGridRad.Columns("Name").SortOrder = RadSortOrder.Ascending 
      Me.cncFilesGridRad.MasterTemplate.SortDescriptors.Add(descriptor) 



      Me.cncFilesGridRad.MasterTemplate.Templates(0).AutoSizeColumnsMode = Telerik.WinControls.UI.GridViewAutoSizeColumnsMode.Fill 


      Me.cncFilesGridRad.CurrentRow = Nothing 

      filterDescriptor.PropertyName = "Name" 
      filterDescriptor.[Operator] = FilterOperator.StartsWith 
      filterDescriptor.IsFilterEditor = True 
      Me.cncFilesGridRad.Columns("Name").FilterDescriptor = filterDescriptor 

Как улучшить работу решетки решетки при загрузке других записей?

+0

50000 записей слишком много для сетки. Загружать данные. Взгляните на [Обзор пейджинга] (http://docs.telerik.com/devtools/winforms/gridview/paging/overview) или [Эмуляция пейджинга с помощью RadGridView для WinForms и LINQ с 1 миллионом записей] (http: // www .telerik.com/blogs/emulating-paging-with-radgridview-for-winforms-and-linq-with-1-million-records) –

+0

Я рекомендую вам изучить приведенную ниже статью для получения полезных советов о том, как оптимизировать производительность RadGrid: http://www.telerik.com/help/aspnet-ajax/grid-viewstate-reduction-techniques.html – StackOverflow

+0

Загрузите записи по мере перемещения страницы, т.е. одна страница может иметь 100 записей, когда мы нажимаем вторую страницу, это будет иметь еще 100 записей .. это улучшит производительность. – MarmiK

ответ

0

нагрузки записи, как движется страницы, то есть одна страница может иметь 100 записи, когда мы щелкаем вторую страницу, она будет иметь еще 100 записи .. что будет повысить производительность.

+0

Как загрузить запись в виде позолоченных wings? Можете ли вы поделиться примером? –

+0

Вы можете фильтровать данные в своем SQL-запросе или фильтровать объект DefaultView объекта DataTable и связывать его с RadGridView. Также вы можете связать объект DataTable с объектом BindingSource, настроить его свойство Filter и затем привязать к RadGridView. – StackOverflow

0

Что вы должны смотреть, это Pagination. Элемент управления Telerik GridView поддерживает эту функцию естественным образом.

Уровень данных RadGridView теперь поддерживает разбиение на страницы данных изначально. Вы все равно можете привязать RadGridView к тем же провайдерам данных, что и раньше, добавив опцию подкачки. Существует ряд функций, которые позволят вам легко настроить и управлять страничным поиском данных.

Для получения дополнительной информации о работе пейджинга, пожалуйста, обратитесь к следующим ссылкам.

http://docs.telerik.com/devtools/winforms/gridview/paging/overview#paging-overview

http://docs.telerik.com/devtools/winforms/gridview/paging/paging-panel

http://www.telerik.com/videos/winforms/radgridview-for-winforms-webinar