Является переменный rowheight возможностью в SlickGrid?

Функция addTwoNumber является функцией-членом, поэтому ей необходимо передать значение self в виде addTwoNumber(selfValue, l1, l2) или selfValue.addTwoNumber(l1, l2).

Просто замените selfValue на любое значение, которое вы хотите передать в качестве параметра self.

25
задан Toby Allen 28 April 2013 в 20:30
поделиться

4 ответа

Просто и понятно, это не поддерживается в SlickGrid и, вероятно, никогда не будет. К сожалению.

2
ответ дан Tin 28 November 2019 в 21:45
поделиться

Недавно я раздвоил SlickGrid, чтобы добавить множество новых функций, включая переменные (и изменяемые размеры) строки. Вы можете попробовать это здесь: https://github.com/globexdesigns/doby-grid

1
ответ дан Ev Haus 28 November 2019 в 21:45
поделиться

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

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

Я изучил это довольно подробно, и, к сожалению, я не нашел жизнеспособных альтернатив, связанных с SlickGrid. Из других альтернатив я нашел только одну бесплатную для коммерческого использования - dojox DataGrid , однако неясно, как вы могли бы использовать пользовательские редакторы с этим (большинство коммерческих предлагают это).

Существует немало жизнеспособных альтернатив, которые требуют оплаты за коммерческое использование: dhtmlxGrid, jQuery EasyUI DataGrid, jQWidgets, виджет Wijmo Grid, JideTable и Sencha ExtJS Grids. Из них я бы лично сказал, что лучшим является dhtmlxGrid http://dhtmlx.com/docs/products/dhtmlxGrid/ - бесплатная версия GPL, Pro-версия стоит 199 долларов.

0
ответ дан nosignal 28 November 2019 в 21:45
поделиться

Это возможно, но это не тривиально, и вы, вероятно, потребуется снижение производительности. Путь SlickGrid работает, он должен быть в состоянии ответить на следующие два вопроса быстро:

  • Для заданной строки X, что верхний смещение для этой строки
  • Для заданного смещения Y, какая строка в том, что смещение

При использовании высоты статической строки, отвечая на эти вопросы тривиален; Однако, с высотой динамического ряда, вам нужно поддерживать несколько дополнительных структуры данных.

Вот примерно то, что я изменил в Slick.Grid.js

  • Добавить новый массив для отслеживания размеров строк. Инициализировать все строки до размера по умолчанию
  • Удалить правила CSS в createCssRules, которые устанавливают высоту ячейки
  • Добавить некоторый код в конце renderRows который проверяет тонированную высоту каждой ячейки в строке, а затем устанавливает высоту всех клетки к максимуму (и сохраняет высоту в массиве размера строки). Кроме того, необходимо отрегулировать верхнее смещение на основе суммы высот строк выше текущей.
  • Добавление кода в конце рендеринга, чтобы изменить размер холста, чтобы сумма всех высот строк.
  • Обновление getViewport вернуть верхнюю и нижние строки на основе сумм высоты строки.
  • Есть несколько других мест, где options.rowHeight используется. Вы можете игнорировать некоторые из них, но, по крайней мере, в любом месте холста изменяется должно быть изменено.

Для того, чтобы сделать этот практический (производительный), вам также понадобится кэш строк топ смещения (кэш сумм размера строки). Это позволит быстро вычисление первого вопроса и позволит бинарного поиска, чтобы ответить на второй.

Я надеюсь, что помогает.

14
ответ дан 28 November 2019 в 21:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: