Я создаю jqgrid с выпадающими столбцами, и я использую редактирование ячейки. Мне нужны опции выпадающих столбцов измениться динамично, и я попытался реализовать это путем установки столбца, чтобы быть:
{ name: "AccountLookup", index: "AccountLookup", width: 90, editable: true, resizable: true, edittype: "select", formatter: "select" },
и затем в beforeCellEdit событии я имею:
beforeEditCell: function(id, name, val, iRow, iCol) {
if(name=='AccountLookup') {
var listdata = GetLookupValues(id, name);
if (listdata == null) listdata = "1:1";
jQuery("#grid").setColProp(name, { editoptions: { value: listdata.toString()} })
}
},
GetLookupValues просто возвращает строку в формате "1:One; 2:Two" и т.д. Это хорошо работает однако, опции заполняются один щелчок позади - т.е. я нажимаю на AccountID последовательно 1, и выпадающее пусто, однако когда я затем нажимаю на AccountID последовательно 3 опции, я установил в строке, 1 щелчок показывают в строке 3 щелчка. И так далее. Таким образом, всегда один щелчок позади.
Есть ли другой способ достигнуть того, в чем я нуждаюсь? Bacially, который всегда изменяют выпадающие отображенные опции и я должен загрузить их, поскольку пользователь вводит ячейку для редактирования. Возможно, я могу так или иначе достигнуть избранное управление в beforeEditCell событии и вручную ввести его значения вместо того, чтобы использовать вызов setColProp? Раз так я мог получить пример выполнения, этому нравится?
Другая вещь - если выпадающее пусто и пользователь, не отменяет редактирование ячейки, сценарий сетки бросает ошибку. Я использую редактирование clientarray, если это имеет значение.
Ваш код не делает то, что я думаю, вы думаете, что это делает. Линия для элемента в Z:
будет итации через Z
, каждый раз, когда изготовление элемент
, равный одному одному элементу Z
. Поэтому оригинал элемент
, следовательно, перезаписан, прежде чем с ним что-либо сделаю.
Я думаю, что вы хотите что-то вроде этого:
item = [0,1,2,3,4,5,6,7,8,9]
for element in item:
if element not in z:
print element
, но вы могли бы легко сделать это как:
[x for x in item if x not in z]
или (если вы не возражаете в том, чтобы потерять дубликаты не уникальных элементов):
set(item) - set(z)
-121--982926- Вы можете использовать опцию DataInit, как это:
{ name: "AccountLookup", index: "AccountLookup", width: 90,
editable: true, resizable: true, edittype: "select", formatter: "select",
editoptions: { dataInit: function( elem )
{
$(elem).empty()
.append("<option value='1'>Apples</option>")
.append("<option value='2'>Oranges</option>");
} } }
просто замените параметры статических яблок и апельсинов с помощью функции GetLookupValues ().