2015-11-15 2 views
0

Был ли кто-нибудь реализован перетаскивание из одного jqGrid в подсерию другого JqGrid. так что в основном у меня есть сетка вида, где я могу искать и фильтровать то, что хочу, и перетаскивать строку в другую сетку с субгридами.jqGrid drag and drop to subgrid

поиск сетки (питание) сетки записи (основная сетка (неделя) -> childgrid (день) -> childgrid (foodlist)

поэтому мое перетаскивание бы от lookupgrid к foodlist Подсеточному для этого день.

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

проблемы в том, что jqGrid использует статические сетки ID согласно документации, однако подсеточный ID является dynanmic и не могут быть связаны с использованием рекомендации по документации

 jQuery("#jqGrid1").jqGrid('gridDnD',{connectWith:'#jqGrid2'}); 
     jQuery("#jqGrid2").jqGrid('gridDnD',{connectWith:'#jqGrid1'}); 

любой волшебник там, который может сделать эту работу.

Благодаря

ответ

0

Если вы используете subgrid as grid подход, то подсеточного просто еще одна сетка, которая создается внутри subGridRowExpanded обратного вызова. Таким образом, я не вижу проблемы с вызовом gridDnD внутри subGridRowExpanded непосредственно после создания подзаголовка.

+0

так, как я вижу это я должен предопределить присоединенную сеть, как JQuery ("# jqGrid1") jqGrid ('gridDnD', {connectWith:. '# jqGrid2' }); однако subGridRowExpanded новый childgridID создается в зависимости от того, какая строка выбрана. так что в основном внутри – boulepick

+0

Это правда, просто нужно, чтобы шаг назад и новый свежий набор глаз, чтобы указать мне в правильном направлении. Для тех, кто заинтересован здесь, это то, как это сработало для меня. внутри функции showChildGrid (parentRowID, parentRowKey) {.... ................ ............... ........ $ ("#" + childGridID) .jqGrid ({.... ...................... } // добавлено соединение здесь к динамической сетке JQuery ("# jlookupGrid") jqGrid ('gridDnD', {connectWith: '#' + childGridID});} Спасибо Олег – boulepick

+0

@boulepick:. Вы можете Синтаксис '{connectWith: '# jqGrid2'}' представляет собой анонимный объект с свойством 'connectWith'. Вы можете использовать любую переменную в качестве значения' connectWith'. Например, вы можете использовать что-то вроде '{connectWith: '#' + subgrid_ta ble_id} 'как параметр' gridDnD'. С точки зрения JavaScript параметр '{connectWith: '# jqGrid2'}' аналогичен динамическому, например '{connectWith: '#' + subgrid_table_id}'. Оба создают * динамически * объект с одним свойством 'connectWith' и присваивают значение свойству. В любом случае, я рад, что проблема решена. – Oleg

0

Вы можете использовать перетаскиваемые и отбрасываемые методы, предоставляемые jQuery UI. Укажите идентификатор целевой подсети как droppable. Во время выполнения обновления обновите базовые данные.

$("#gbox_destinationTable tr td").droppable({ 
    drop : function(event, ui) { 
     var draggedHtml = ui.draggable.html(); 
     $(this).append(draggedHtml); 
     deleteFromSource(ui.draggable.parent()); 
    } 
}); 

function deleteFromSource(draggedObj) { 
    $('#sourceTable').jqGrid('delRowData', draggedObj.attr('id')); 
} 

Вы можете увидеть образец здесь: http://jsfiddle.net/pragya91/fzkqxdxm/