2011-02-09 2 views
2

У меня есть страница, на которой есть два jqGrids. Один содержит список доступных опций, другой содержит список включенных опций. Когда страница загружается, каждая сетка получает исходные данные с сервера. После этого я хочу, чтобы пользователь мог перемещать строки между сетками, пока они не готовы представить окончательный результат.jqGrid копия между сетками

Мой код для достижения этой цели является:

function CopySelected(fromGrid, toGrid) 
    { 
     var grid = jQuery(fromGrid); 
     var rowKey = grid.getGridParam("selrow"); 
     if(rowKey != null) 
     { 
      var row = grid.jqGrid('getRowData', rowKey); 
      grid.delRowData(rowKey); 
      jQuery(toGrid).addRowData(rowKey, row); 
     } 
    } 

Проблема с этим подходом является то, что я в конечном итоге с повторяющимися ROWIDs в сетке назначения. Есть ли способ сообщить jqGrid о создании нового идентификатора или получить следующий бесплатный идентификатор?

ответ

1

Вы можете просто использовать любой префикс для идентификаторов из сетки назначения:

jQuery(toGrid).addRowData("bla_"+rowKey, row); 
+0

Это решило проблему дублирования идентификаторов, но привел прямо к новой проблеме. Я посмотрю, что я могу выкопать, прежде чем начинать новый вопрос. –

+0

@Donavan Stanley: Я полагаю, что у вас может возникнуть проблема при редактировании второй сетки. В случае, если вы можете использовать 'serializeCellData' (в случае редактирования ячейки),' beforeSubmit' или 'serializeEditData' (в случае редактирования формы) или' serializeRowData' (в случае встроенного редактирования), чтобы изменить идентификатор, прежде чем отправлять его на сервер. – Oleg

+0

@Donavan Stanley: Кстати, в http://www.trirand.com/blog/?page_id=393/feature-request/prefixes-to-rowids/ Я предложил ввести новый параметр 'idprefix', который мог бы точно решить проблема, которую вы описали. Это питти, но запрос функции не был реализован в той форме, которую я предложил. – Oleg

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