Как ссылаться на переменную javascript из атрибута заголовка p: dialog - PullRequest
0 голосов
/ 24 августа 2011

У меня есть переменная header_title в сценарии Java

<script type="text/javascript">
var dialog_label; 

function update_dialog_label(arg){  
   dialog_label = arg;  
}</script>

Теперь вот как я хочу использовать dialog_open

<p:dialog widgetVar="nodeDetail" width="520" header="{dialog_label}">

Как правильно использовать dialog_label для установки заголовка?

Спасибо.

Ответы [ 3 ]

4 голосов
/ 19 декабря 2012

Если вы предпочитаете использовать javascript var вместо свойства bean:

JSF код:

<p:dialog id="infoDialog" widgetVar="infoDialog" header="Local title" width="400">
    something
</p:dialog>

<input type="button" value="showDialog" onclick="showDialog()"></input>

код A:

<script type="text/javascript">
var globalTitle = "Global title";

function showDialog(){  
    var header = $("#infoDialog".concat("_title"));
    header.text(globalTitle);
    infoDialog.show();
}
</script>

код B:

<script type="text/javascript">
var globalTitle = "Global title";

function showDialog(){  
    var header = document.getElementById("infoDialog".concat("_title"));
    header.innerHTML = globalTitle;
    infoDialog.show();
}
</script>

и оригинальный заголовок игнорируется ... вы можете обновить globalTitle ...

0 голосов
/ 24 февраля 2014

Проверяя сгенерированный код в браузере, я успешно изменил заголовок <p:dialog> со следующим javascript:

$('span#infoDialog_title.ui-dialog-title').html(globalTitle);

и отобразил диалоговое окно:

PF('infoDialog').show();

Надеюсь, это поможет!

0 голосов
/ 24 августа 2011

Я не верю, что вы можете связывать атрибуты с переменными в JavaScript, как вы показали. Однако, если элемент p:dialog похож на другие элементы HTML, вы можете достичь желаемого, устанавливая заголовок непосредственно из JavaScript при каждом обновлении метки диалога. Сначала дайте вашему диалогу ID:

<p:dialog id='dialog' widgetVar="nodeDetail" width="520" header="{dialog_label}">

Теперь, в вашей функции update_dialog_label(arg), добавьте следующую строку в самом конце:

nodeDetail.header = dialog_label;

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

РЕДАКТИРОВАТЬ: Я не знаком с PrimeFaces, но я погуглил это, и он может встать на правильный путь: http://forum.primefaces.org/viewtopic.php?f=3&t=14538

...