Control Link - Window Behavior

Dragon108

Well-known member
19.01.2010
265
0
#1
Доброе всем утро. :huh:
Возник такой вопрос: У контрола Link есть такой параметр - Window behavior, который по дефолту может принимать 3 значения (Use page default, Open in same window and tab и Open new window or tab (per client preference)).
У него можно вроде как использовать Compute value. Так вот, как в этом Compute value прописать что бы в одном случае, использовалось
Use page default, а в другом Open new window or tab (per client preference)?

Такая необходимость возникла вот из-за чего: Есть кнопка (тот самый link) - "Создать документ". Хотелось бы сделать рядом чек бокс - "Открывать в новом окне" - что бы при создании нового документа была возможность открыть новый документ либо в текущем окне, либо в новом.
Заранее спасибо.
 

Zeka

Well-known member
01.09.2009
219
0
#2
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:link escape="true" text="www.google.com" id="link1" value="http://www.google.com" target="#{viewScope.turget}"></xp:link>
<xp:checkBox text="New window" id="checkBox1" checkedValue="_blank" uncheckedValue="_self" value="#{viewScope.turget}">
<xp:eventHandler event="onchange" submit="true" refreshMode="complete"></xp:eventHandler>
</xp:checkBox>
</xp:view>
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#3
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:link escape="true" text="www.google.com" id="link1" value="http://www.google.com" target="#{viewScope.turget}"></xp:link>
<xp:checkBox text="New window" id="checkBox1" checkedValue="_blank" uncheckedValue="_self" value="#{viewScope.turget}">
<xp:eventHandler event="onchange" submit="true" refreshMode="complete"></xp:eventHandler>
</xp:checkBox>
</xp:view>
submit="true" - думаю лучше убрать, дабы не перегружать страницу
 

NickProstoNick

Статус как статус :)
Lotus team
22.08.2008
1 809
21
#5
Должно прописаться. В общем конечно зависит от реализации.

В этом случае submit лучше заменить на Partial Update компонента Link.
Тем самым ты не будешь перегружать страницу.
 

Zeka

Well-known member
01.09.2009
219
0
#6
Если уж оптимизировать, то лучше тогда вообще не обращаться к серверу - сделать всё на чистом javascript.
Нет лотуса под рукой - суть набросал в NotePad'е:
Код:
<html><body>
<input type="checkbox" id="cBox">New tab</input>
<a href="" onclick="if(document.getElementById('cBox').checked){
window.open('http://www.google.com', '_blank')
}else{window.open('http://www.google.com', '_self')}
return false">Google</a>
</body>
</html>
 

Zeka

Well-known member
01.09.2009
219
0
#7
Что-то типа такого:
Код:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:checkBox text="New tab" id="checkBox1"></xp:checkBox>
<xp:link escape="true" text="Link" id="link1">
<xp:eventHandler event="onclick" submit="false">
<xp:this.script><![CDATA[if(dojo.byId("#{id:checkBox1}").checked){
window.open('http://www.google.com', '_blank')
}else{
window.open('http://www.google.com', '_self')
}
return false]]></xp:this.script>
</xp:eventHandler>
</xp:link>
</xp:view>