Как я могу использовать возвращаемые значения JavaScript в Genexus?

Используя Genexus, я пытаюсь установить свойство Button JSEvent для простого присваивания значения:

Event Start
  DoAssignments.JSEvent("onclick", "document.getElementById('" + &Field1.InternalName + "').value = 'Hello!'")
endEvent

После этого действия (button_click) &Field1, кажется, имеет правильное значение. Но простое назначение Genexus (&Field2 = &Field1) показывает, что внутренне для Genexus этот &Field1 по-прежнему пуст.

Как я могу получить значение JavaScript /functionReturn и использовать его в Genexus?

3 ответа

Для справки, всегда лучше изучить библиотеки JavaScript GX, чтобы увидеть, можете ли вы решить их, используя их, чем пытаться перепроектировать, как это решает эти проблемы. Ваше решение хорошо, но оно может сломаться, если вы когда-нибудь измените версию GeneXus.

Например, то, что вы хотели, можно сделать с помощью:

DoAssignments.JSEvent("onclick", "gx.fn.setControlValue('" + &Field1.InternalName + "', 'Hello!',false)")

Я надеюсь, что это поможет вам:

epftintins.JSEvent("OnChange","var a = document.getElementById('EPFTINTINS')[document.getElementById('EPFTINTINS').selectedIndex].text; console.log(a); if (a=='Juzgado' or a=='Fiscalía') document.getElementById('EPFTINNJUZ').disabled = false; else document.getElementById('EPFTINNJUZ').disabled = true; ")

Я использовал это.

Решаемые. Мне также пришлось установить атрибут gxoldvalue, чтобы назначать значения элементам управления Gx через JavaScript .

Event Load

textblock1.Caption = '<script>' + chr(13) + chr(10)
textblock1.Caption += ' function doAssignment() {'  + chr(13) + chr(10)
textblock1.Caption += " var element = document.getElementById('" + &Field2.InternalName + "');" + chr(13) + chr(10)
textblock1.Caption += " element.value = document.getElementById('" + &Field1.InternalName + "').value;" + chr(13) + chr(10)
textblock1.Caption += " element.setAttribute('gxoldvalue', document.getElementById('" + &Field1.InternalName + "').value);" + chr(13) + chr(10)
textblock1.Caption += ' }'  + chr(13) + chr(10)
textblock1.Caption += '</script>'  + chr(13) + chr(10)

DoAssignments.JSEvent("onclick", "doAssignment()")

Пожалуйста, дайте мне знать, если есть какие-либо проблемы с этим подходом.

Спасибо хайме

Другие вопросы по тегам