2012-06-06 2 views
0

Я хочу, чтобы иметь возможность выбирать значение в переключателе в XPages, затем использовать это значение для определения выбора в наборе флажков.Вычисление выбора флажка в зависимости от выбора переключателя

Выбор переключателя осуществляется с помощью DbLookup для одного вида. Существует некоторый javascript, который помещает текстовое значение поиска переключателей в скрытое поле. Основываясь на этом значении, выбор флажка определяется другим DbLookup.

Я продолжаю возиться с кодом и никогда не могу заставить его использовать обновленное значение скрытого поля, чтобы перепроверить выбор для флажков, даже если я его покажу.

<xp:selectItems> 
    <xp:this.value> 
    <![CDATA[#{javascript: var viewName=reportDoc.getItemValueString("viewChoice"); 
    var tmp = @DbLookup(@DbName(),"dbprofile",viewName,"Value"); 
    @If(@IsError(tmp),"None",tmp) 
    }]]></xp:this.value> 
</xp:selectItems> 

Я уверен, что это на самом деле довольно просто, но я просто не могу это понять.

ответ

3

Вам необходимо установить событие onChange переключателя, чтобы частично обновить элемент управления checkBox. Это гарантирует, что значения элемента управления checkbox будут обновлены.

Контроллер checkBox может считывать значение элемента управления радиокнопками с помощью getComponent («идентификатор управления переключателем»). GetValue() и использовать это значение вместо скрытого поля для DbLookup.

+0

Я наткнулся на необходимость чего-то в onChange, прежде чем проверять здесь, но неясно, на частичных обновлениях. Я устанавливаю refreshId в мой флажок? –

+0

Nevermind. Установите refreshId в элемент управления checkbox и измените его на getComponent и getValue. Теперь, если я могу просто понять, почему он не будет запускаться в клиенте браузера из моей локальной базы данных, хотя XPiNC работает правильно. –

+0

Отлично, что вы получили его на работу. Не содержит ли весь XPage в локальном предварительном просмотре - или это только частичное обновление, которое не работает? –