2015-01-26 3 views
0

Я хочу установить значение поля автозаполнения, используя xf: setvalue. Я знаю, что сначала мне нужно установить значение поля, а затем установить метку (@label). Я пытаюсь сделать это следующим образом:Setvalue поля автозаполнения не работает

<xf:setvalue ref="xxf:instance('fr-form-instance')//*[name() = $autocomplete-name]" value="'myValue'"/> 
<xf:setvalue ref="xxf:instance('fr-form-instance')//*[name() = $autocomplete-name]/@label" value="'labelValue'"/> 

После этого в форме строитель, я вижу, что в главном случае это выглядит правильно:

<xf:instance id="fr-form-instance" xxf:exclude-result-prefixes="#all"> 
    <form> 
     <section-5> 
      <control-10 label="labelValue">myValue</control-10> 
     </section-5> 
    </form> 
</xf:instance> 

но, к сожалению, в моем автозаполнения поле нет никаких изменений. Я могу заметить изменение только в том случае, если я перехожу к кнопке «edit source» в построителе форм, и без каких-либо изменений я нажимаю «apply». Затем автозаполнение автоматически обновляется, и я вижу свой ярлык: 'labelValue'. Что мне делать, чтобы обновить поле автозаполнения после setvalue?

С уважением

ответ

1

Вы должны сделать это setting the label of the autocomplete, а не его стоимость, которая осуществляется путем диспетчеризации fr-set-label событие управления автозаполнения. Затем внутренне автозаполнение сделает что-то очень похожее на то, что оно делает, если пользователь ввел этот ярлык, в частности, вызвав службу для получения соответствующего значения.

+0

Thank you. Я пытался это сделать: у меня есть действие, которое выполняется после нажатия пользователем на какую-либо кнопку. Внутри этого действия я поместил код из вашей ссылки: user2539823

+0

Не могли бы вы создать «минимальный» пример, который я могу запустить здесь, чтобы воспроизвести проблему? Ему нужно будет использовать общедоступную службу, но вы можете просто использовать для этого статический файл, например. https://dl.dropboxusercontent.com/u/6900/resources/20131119-countries.xml. Вы можете опубликовать источник своего кода на https://gist.github.com/ и просто ссылку на него отсюда. – avernet

+0

У меня есть две переменные: control-name, которая является именем моего автозаполнения, а контрольное значение содержит значение, которое должно быть присвоено метке автозаполнения. Весь код находится в файле xbl (мой собственный контроль): https://gist.github.com/pumbosha/9185683436023a43893a – user2539823

Смежные вопросы