Объединение tableToGrid и gridDnd в jqGrid - PullRequest
1 голос
/ 17 октября 2011

Я создаю две сетки с помощью метода tableToGrid в jqGrid. Теперь я бы хотел, чтобы между этими двумя сетками можно было перетаскивать строки. Простое добавление 'gridDnD' : true в настройках не работает. Как это сделать?

Пример:

<script type="text/javascript">
$(function() {
tableToGrid("#table1", { gridDnD: {connectWith: "#table2" } });
tableToGrid("#table2", { gridDnD: {connectWith: "#table2" } });
}
</script>

<table id="table1">
<thead>
<tr>
<th>Col 1</th>
<th>Col 2</th>
</tr>
</thead>
<tbody>
<tr>
<td>Val 1</td>
<td>Val 2</tr>
</tr>
</tbody>
</table>

<table id="table2">
<thead>
<tr>
<th>Col 1</th>
<th>Col 2</th>
</tr>
</thead>
</table>

1 Ответ

1 голос
/ 17 октября 2011

gridDnD - это метод jqGrid, а не опция, которую вы можете использовать непосредственно в tableToGrid.Поэтому вы должны переписать код примерно так:

tableToGrid("#table1");
tableToGrid("#table2");
$("#table1").jqGrid('gridDnD', {connectWith: "#table2"});
$("#table2").jqGrid('gridDnD', {connectWith: "#table1"});

См. демо .

ОБНОВЛЕНО : я проанализировал проблемус копированием строк при перетаскивании вместо перемещения .Кажется, проблема в совместимости jqGrid с jQuery UI, начиная с версии 1.8.13.Как вы можете увидеть на демонстрационную версию , которая использует jQuery UI 1.8.12, код работает правильно.

Я обнаружил, что строки grid.jqueryui.js кодируют (строки 11078-11079 jquery.jqGrid.src.js)

var ids = $(ui.helper).attr("id");
$($t).jqGrid('delRowData',ids );

являются источником проблемы.ui.helper[0] содержит пропущенную строку с пустым идентификатором , начиная с jQuery UI 1.8.13.

Если вы измените код на

var id = this.id;
$($t).jqGrid('delRowData',id);

, код будетработать как в новом пользовательском интерфейсе jQuery (протестирован с 1.8.16), так и в старом (1.8.12).См. Соответствующую демонстрацию здесь .

В настоящее время у меня нет времени для более точного анализа изменений между jQuery UI 1.8.12 и 1.8.13.Вероятно, есть ошибка в jQuery UI.Тем не менее, я опубликую свое предложение, описанное выше, как исправление на форуме trirand .Я думаю, будет хорошо иметь код jqGrid, в котором меньше проблем с совместимостью с различными версиями пользовательского интерфейса jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...