Я использую jqGrid в качестве универсального редактируемого для таблицы элемента управления. Моя цель - иметь пары name -> value
в таблице, где value
s являются редактируемыми.Проблема с jqGrid с динамическим colModel при редактировании строк
Все идет хорошо, пока я не запутались с colModel
: если у меня есть таблица со смешанными типами значений я вынужден изменить colModel
для того, чтобы соответствовать его значение редактируется. Например, в таблице с тремя значениями: Name
, Surname
, Married?
, последний имеет тип checkbox
, а другие - типа string
.
После редактирования поля Married?
, если щелкнуть на других областях их изменения содержания в Yes:No
в режиме редактирования, строка Yes:No
является один используется поле CheckBox; Кто-нибудь знает, что я делаю неправильно ?:
var data =
[
{name:"Name", value:"John"},
{name:"Surname", value:"Doe"},
{name:"Married", value:"No"}
];
var currentrow = 0;
function edit(id)
{
if (id && id !== currentrow)
{
var table = jQuery("#grid");
function colProp(id)
{
switch (id)
{
case "1":
case "2":
return { editable: true, edittype: 'text', editoptions: {} };
case "3":
return { editable: true, edittype: 'checkbox', editoptions: {value: 'Yes:No'} };
}
}
table.jqGrid('restoreRow', currentrow);
table.setColProp('value', colProp(id));
table.jqGrid('editRow', id, true,
undefined, undefined, 'clientArray');
currentrow = id;
}
}
$("#grid").jqGrid
({
datatype: "local",
data: data,
colNames: ['Name', 'Value'],
colModel:
[
{ name: 'name' },
{ name: 'value' }
],
onSelectRow: edit
});
Сначала я думал, что после редактирования поля с edittype: checkbox
следующие поля будучи editet наследует предыдущий edittype
, поэтому я поставил editoptions
Ань пустой объект при редактировании текстовых полей, но он не работает.
Я вставил code into a Fiddle, чтобы поделиться рабочим примером моей проблемы.
PS: Может быть, jqGrid - не лучший выбор для достижения моей цели, но я вынужден использовать его.