2010-10-14 2 views
8

Можно ли добавить элементы навигации в «верхний пейджер» в jqGrid? И если да, то в чем синтаксис для этого?Добавление пользовательской навигации jqGrid к верхней панели инструментов

У меня есть HTML-фрагмент на моей странице, которая выглядит, как этот

<table id="mygrid"> 
</table> 
<div id="mygrid_pager"></div> 

а затем инициализации jqGrid, что выглядит, как этот «верхний пейджера»

$('#mygrid').jqGrid({ 
    ..., //full config string removed for brevity, 
    pager:jQuery('#mygrid'), 
    toppager:true 
}); 
$('#mygrid').jqGrid('navGrid', '#mygrid_pager'),{ 
    'add':false, 
    'del':false, 
    'edit':false, 
    'search':false, 
    'refresh':false, 
    'cloneToTop':true, 
}).navButtonAdd('',{...}); //config navbutton string for button removed for brevity 

А с идентификатором # mygrid_toppager автоматически вставляется в страницу, но его пользовательские кнопки (которые появляются на нижнем пейджере) не подходят для поездки.

I see that there's a "cloneToTop" option включен для navGrid, но его описание кажется запутанным, и я могу только предположить, что я использую его неправильно.

Клонирование всех действий от нижнего пейджера до верхнего пейджера , если определено. Обратите внимание, что navGrid можно применить только к пейджеру . Идентификатор верхнего пейджера представляет собой сочетание сетки Ид и «_toppager»

Моего понимания опции потребуются кнопки добавлены к нижнему пейджеру, и клонировать их к вершине. Однако в описании далее говорится: «navGrid можно применять только к верхнему пейджеру, что не имеет никакого смысла, так как вы клонируете его. Понятие pont, у меня явно есть глубокое непонимание того, как API Предположим, что он будет использоваться.

Если кто-то может указать мне в правильном направлении (даже на какой-нибудь рабочий пример), я был бы признателен. Я бы предпочел сделать это через официальные API, а не to clever DOM manipulation, как видно в другом месте на StackOverflow.

ответ

17

ОК, кажется, что я нашел способ, который выглядит лучше. идея заключается в том, чтобы использовать navButtonAdd с "#list_toppager_left" вместо "#pager".

Я изменил old answer так, чтобы одна пользовательская кнопка была добавлена ​​в верхней части панели навигации вместе с одной стандартной кнопкой. Другие элементы с верхней панели навигации будут удалены. Результаты будут выглядеть так: alt text

Вы можете увидеть соответствующую демоверсию here.

+0

А, я думаю, теперь я следую. В интересах помочь следующему программисту, который приходит, я не понимал, что опция «cloneToTop» копирует только кнопки сетки по умолчанию и ** не ** добавляет какие-либо пользовательские кнопки. Я пытался использовать navButtonAdd на mygrid_toppager, я didn «Я понимаю, что вам нужно было позволить апи знать, с какой стороны сетки вы хотели его (влево/вправо) при работе с топпагером. –

+2

В вашей демонстрации (и то, что я сейчас испытываю) стиль «курсор: указатель» не применяется при наведении курсора на верхние пользовательские значки навигации. Есть ли у вас какие-либо решения? Спасибо огромное! – icats

+0

@icats: Это очень хороший вопрос! Проблемы в CSS для '.ui-jqgrid .ui-jqgrid-pager .ui-pg-button', но у toppager есть класс' ui-jqgrid-toppager' и нет 'ui-jqgrid-pager', как нижний пейджер , Поэтому, чтобы исправить проблему, нужно добавить CSS '.ui-jqgrid .ui-jqgrid-pager .ui-pg-button {cursor: pointer}'. Это ошибка в 'ui.jqgrid.css' – Oleg

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