2015-05-29 3 views
0

Используя Genexus, я пытаюсь установить свойство JSEvent кнопки, чтобы сделать простое присвоение значения:Как использовать возвращаемые значения JavaScript в Genexus?

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

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

enter image description here

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

ответ

0

Решено. Мне также пришлось установить атрибут gxoldvalue для назначения значений в Gx Controls через 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()") 

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

Благодаря Jaime

1

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

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

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

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

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; ") 

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