У меня есть функция JQuery и AJAX, которая создает таблицу с двумя списками и кнопками для добавления / удаления из одного списка в другой. Я хочу вставить эту таблицу в диалоговое окно редактирования JQGrid. Таким образом, при нажатии кнопки добавления или редактирования отображается таблица, и пользователь может добавлять элементы, а соответствующая ячейка редактируется.
Сценарий Java и AJAX:
function create_listbox() {
var html = '<select id="ddlRoles" size="7" multiple></select>';
var selected = '<select id="ddlSelectedRoles" size="7" multiple></select>';
var table = '<table id="table1" border="3"></table>';
var tr = '<tr id="tr1"></tr>';
var td1 = '<td id="td1"></td>';
var td2 = '<td id="td2"></td>';
var td3 = '<td id="td3"></td>';
var addButton = '<button id="add" onclick="addRole()">Add Role</button><br>';
var removeButton = '<button onclick="removeRole()">Remove Role</button><br>';
$('#whatever').append(table);
$('#table1').append(tr);
$('#tr1').append(td1);
$('#tr1').append(td2);
$('#tr1').append(td3);
$('#td1').append(html);
$('#td2').append(addButton);
$('#td2').append(removeButton);
$('#td3').append(selected);
$.ajax({
url: "MyApplication.asmx/GetRoles",
data: "{ }",
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function (data) { return data; },
success: function (data) {
// alert(data.d);
for (var i = 0; i < data.d.length; i++) {
$('#ddlRoles').append("<option value=\"" + data.d[i].RoleID + "\">" + data.d[i].RoleName + "</option>")
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus + ":" + errorThrown);
}
});
}
Я знаю, что мне нужны EditTypeCustomElement и EditTypeGetCustomValue, но я совершенно не понимаю, как это сделать.
Я пробовал вернуть $ table.get (0) с помощью функции create_listbox, которая добавляет таблицу, но не добавляет дочерние элементы. Любая помощь?