2013-05-01 6 views
0

У меня есть основная сетка, равная autowidth: true, но как я могу сделать то же самое с подсетой так, чтобы она была такой же ширины, что и родительская, а столбцы - относительной/переменной/процентной ширины?jqGrid, установите ширину столбца подсетей в процентах?

+1

Не могли бы вы разместить больше кода, который показывает, как вы используете jqGrid и как вы создаете подзаголовок? Используете ли вы [subgrid as grid] (http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid_as_grid), или вы используете [subgrids старого стиля] (http://www.trirand.com/ jqgridwiki/doku.php? id = wiki: subgrid) с помощью 'subGridModel'? Какой тип данных вы используете для основной сетки и для подсерии? Вы загружаете все данные для сетки и подсекции одновременно или загружаете ее при расширении? – Oleg

+0

Я использую старый стиль, я никогда не видел нового пути. Я попытаюсь изменить свой код. Благодарю. – CaffGeek

+0

Добро пожаловать! использование сетки в качестве подзаголовки очень просто. Нужно только реализовать обратный вызов 'subGridRowExpanded'. jqGrid создайте новую строку для subgrid и создайте div для правой (основной) части подсети. Затем он вызывает обратный вызов 'subGridRowExpanded'. Таким образом, вы можете создавать внутри div * любые * HTML-данные (см. Демонстрацию из [ответа] (http://stackoverflow.com/a/4115481/315935)). Если вы добавите пустой элемент '

' в div, вы можете создать jqGrid внутри. Так что все очень просто и очень гибко. Я рекомендую использовать только 'idPrefix' в subgrid для предотвращения дублирования id. – Oleg

ответ

1

Вы написали в комментарии к другому ответу на вопросе

Почему colModel и subGridModel две совершенно разные данные структур?

Косвенно вы ответили сами на свой главный вопрос. Использование устаревших субгрид (см. «Дополнительно»/«Субгрид» на the official jqGrid demo) имеет слишком много ограничений. Если вы будете использовать subgrid as grid (см. «Дополнительно»/«Сетка как субсбор» на the the same jqGrid demo), вы можете создать те же результаты, но у вас есть гораздо больше гибкости. Вы можете использовать, например, formatters (включенные пользовательские форматирования), используя cellattr и rowattr обратные вызовы, используйте опцию autowidth: true в подсете и т. Д. У вас есть тот же набор возможностей, что и в основной сетке. Если вы определите некоторые общие обратные вызовы в $.jgrid.defaults, вы можете использовать код обратных вызовов подсетей и основной сетки ...

Я могу продолжить список преимуществ использования Grid as Subgrid. Мой короткий совет: используйте всегда только функцию.

0

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

$('#ParentGridName, #SubGridName').jqGrid('setGridWidth', $('#IdOfHTMLElementHoldingGrids').width(), true); 

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

Ex.

window.onresize = function() { resizePageGrids() } 
+0

На данный момент я изменил таблицу css '.tablediv> {width: 100%; } ', Мне не нравится jqGrid, тем больше я его использую. Почему colModel и subGridModel имеют две совершенно разные структуры данных? ARGH! – CaffGeek

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