• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Control Link - Window Behavior

  • Автор темы Dragon108
  • Дата начала
D

Dragon108

Доброе всем утро. :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) - "Создать документ". Хотелось бы сделать рядом чек бокс - "Открывать в новом окне" - что бы при создании нового документа была возможность открыть новый документ либо в текущем окне, либо в новом.
Заранее спасибо.
 
Z

Zeka

Код:
<?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 851
27
BIT
0
Код:
<?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 851
27
BIT
0
Должно прописаться. В общем конечно зависит от реализации.

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

Zeka

Если уж оптимизировать, то лучше тогда вообще не обращаться к серверу - сделать всё на чистом 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>
 
Z

Zeka

Что-то типа такого:
Код:
<?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>
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!