Infragistics Ultragrid - низкая производительность с помощью PerformAutoResize

1

Я плохо выполняю код, который использует Ultragrid, но при выполнении анализа визуализации с использованием D3.js на выходе трассировки я обнаружил, что grid__InitializeRow вызывал себя несколько раз.

Триггер, созданный: this.grid.InitializeRow += new Infragistics.Win.UltraWinGrid.InitializeRowEventHandler(this.grid_InitializeRow);

Проблема начинается с этого кода:

column.PerformAutoResize(PerformAutoSizeType.AllRowsInBand, true)

Поиск в Интернете Я не мог найти информацию об этом, но нашел несколько возможных соперников - вызов любого из них вызывает вызов строки инициализации:

  • grid.DataSource
  • grid.Rows.Band.Layout.Bands
  • column.performAutoResize

Вопросов

  1. Есть ли документация по этому поводу?
  2. Можно ли временно отключить триггер

заранее спасибо

Теги:
ultragrid

2 ответа

1

Я не мог сделать "PerformAutoResize" адекватным. Это займет 10 секунд. Поэтому в конце концов я решил сворачивать свой собственный, что ограничивается нашим конкретным использованием конфигурации сетки, которая отображает только текст в ячейках (в отличие от суб-элементов управления), используя функцию Graphics.MeasureString для каждой ячейки сетки.

Примерно 40 строк кода и сокращено время на 0,4 с для сетки 600 x 20.

  • 0
    Я обнаружил, что это вызвало каскад обновлений - думаю, вы поступили правильно.
1

Нашел ответ через форумы Infragistics:

Вызов column.PerformAutoResize(PerformAutoSizeType.AllRowsInBand, true) вызывает повторную проверку из источника данных, который, в свою очередь, запускает initialise_row.

Поскольку изменение размера было вызвано несколько раз (один раз за столбик за полосу), перегруппировки вышли из-под контроля.

Для информации у нас также были следующие проблемы. С данными за год потребовалось 2 минуты для рендеринга:

  • Это была огромная сетка, и ячейки были оформлены индивидуально. Переход на использование библиотеки Appearance/фабрика с бритой 40 с от времени загрузки
  • Настройка базы данных сбрила еще 40 секунд
  • Изменение способа подсчета пользовательских итоговых строк было вычеркнуто на 15 секунд (с использованием общей переменной var вместо обновления ячейки)
  • AutoResize был множителем силы - все остальные проблемы ухудшились. Фиксация, что побрил больше свободного времени.

Надеюсь, это поможет другим с проблемами simiar

Ещё вопросы

Сообщество Overcoder
Наверх
Меню