Xpages - Поле управления повтором недоступно для редактирования

Я использовал пример из этого вопроса в качестве отправной точки. а>

поле в примере из ссылки выше: <xp:inputText id="inputText1" loaded="true"> <xp:this.value><![CDATA[${javascript:var fieldName = "Help_" + varcollection; return '#{viewScope.' + fieldName + '}';}]]></xp:this.value> <xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="computedField1"></xp:eventHandler></xp:inputText>

Код для поля, который у меня есть сейчас, представляет собой модифицированную версию сверху:

<xp:inputText id="inputText1" loaded="true"> <xp:this.value><![CDATA[#{javascript:var fieldName = "Tmp_" + @ReplaceSubstring(varcollection," ",""); return '#{viewScope.' + @ReplaceSubstring(fieldName," ","") + '}';}]]></xp:this.value> <xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="panel1" /></xp:inputText>

но по какой-то причине это нередактируемое поле, есть идеи, почему?

Кроме того, хотя вышеизложенная идея хороша, если у меня есть 4 редактируемых поля в 1 строке, мне нужно будет создать 4 переменные viewScope для каждой строки? Есть ли другой способ сохранить значения полей?

работает на Domino 8.5.3


person Web_Developer    schedule 08.07.2013    source источник
comment
Я добавил кнопку с onclick: var tmp1 =; вар тмп2 = -1; if (sessionScope.get(s1d)!= null) { tmp1 = sessionScope.get(s1).indexOf(varcollection); если (tmp1 != -1) { tmp2 = sessionScope.get(s1).splice(tmp1,1); sessionScope.put(s1,tmp2); }}` и как частичное обновление панели с помощью кнопки, но, похоже, не обновляется. он работает нормально, если я хочу удалить 1 элемент, но если я хочу удалить 2 элемента, он не работает, поскольку кнопки, кажется, сохраняют начальное значение. то есть значения 1,2,3,4, когда я нажимаю кнопку для удаления в строке 3, я получаю 1,2,4 в порядке, когда я нажимаю кнопку в строке 4, я снова получаю 1,2,3 ??   -  person Web_Developer    schedule 09.07.2013


Ответы (1)


Замените #{javascript: на ${javascript. Или измените код в значении на onLoad (это то же самое, что изменение между # и $), это должно сделать ваши поля снова редактируемыми.

Вместо того, чтобы использовать 4 или более переменных области видимости в строке, и вы не знаете, сколько вам нужно, в конце концов вы могли бы использовать Bean, который implements com.ibm.xsp.model.DataObject. См. ссылку. Преимущество реализации интерфейса DataObject заключается в что вы можете получить прямой доступ к beanData через EL< /а>.

person Michael Saiz    schedule 09.07.2013