Контрол toggle switch

MaxP

Well-Known Member
02.12.2014
45
3
#1
Приветствую. Кто-нибудь успешно использует toggle switch?
 

MaxP

Well-Known Member
02.12.2014
45
3
#3
Надеюсь, что кто-то использует и откликнется. Есть пара вопросов.
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 790
42
#4
Я бы все таки рекомендовал описывать проблему, а не отделываться общими фразами. Иначе помощи не дождешься
 

MaxP

Well-Known Member
02.12.2014
45
3
#5
Ок. Насколько я понял, у элемента есть два состояния: on и off. На каждое состояние, можно сделать Label.
Чтобы привязать контрол к значению поля, нужно в value прописать условие, если поле = "1", то "on", ="", то "off".
Это как пример. При загрузке CC в моб.приложении, можно посмотреть значение контрола вот так
getComponent("djxmSwitch1").getValue();
Однако, при изменении значения контрола на противоположное - нажатием, программно я получаю значение которое было при инициализации.
Попытки работать с onStateChanged не приносят также успеха. Пробую получить состояние контрола, и другие действия в скрипте, а контрол при нажатии перемещается обратно.
Документации по полю не нашел. Отсюда вопросы:
1) Правильно ли связываю значения поля дока и контрол?
2) Правильно ли я получаю, или хочу получить значение переключателя для дальнейшей обработки?
3) Нужно ли работать с onStateChanged? И если да, то как?
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 790
42
#6
Если чего-то не понимаешь - не значит, что это что-то не работает.
HTML:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core"
xmlns:xe="http://www.ibm.com/xsp/coreex"
xmlns:xc="http://www.ibm.com/xsp/custom"
pageTitle="Mobile Application">
 
<xp:this.beforePageLoad><![CDATA[#{javascript:viewScope.put( "test", "on")}]]></xp:this.beforePageLoad>
<xe:singlePageApp id="singlePageApp1" selectedPageName="home">
 
<xe:appPage resetContent="false" id="home" pageName="home">
<xe:djxmHeading id="djxmHeading0"
label="Mobile Controls Demo">
 
</xe:djxmHeading>
 
</xe:appPage>
 
<xp:text escape="true" id="computedField1" value="#{viewScope.test}"> </xp:text>
 
<xp:br></xp:br>
 
<xe:djxmSwitch leftLabel="ON" rightLabel="OFF" id="djxmSwitch1" value="#{javascript:viewScope.test}">
<xp:eventHandler event="onStateChanged" submit="true" refreshMode="partial" refreshId="computedField1">
<xe:this.action>
<![CDATA[#{javascript:var v1 = viewScope.test
if( v1 !== "off"){
viewScope.put( "test", "off")
}else{ viewScope.put( "test", "on")}}]]>
</xe:this.action>
</xp:eventHandler>
</xe:djxmSwitch>
 
</xe:singlePageApp>
</xp:view>
 

MaxP

Well-Known Member
02.12.2014
45
3
#7
Согласен. Пока на "вы" с xpage.
Благодарю за пример!