Как захватить ввод, введенный в rich: modalpanel? - PullRequest
0 голосов
/ 19 августа 2011

У меня есть кнопка редактирования на странице результатов поиска. При каждом нажатии этой кнопки пользователь должен ввести дату, прежде чем перейти на следующую страницу.

Кнопка без модальной функции:

<h:commandButton action="#{controller.open(rec, false)}" />

Каким-то образом я хотел бы ввести модальный диалог перед открытием страницы, чтобы получить введенную дату из диалогового окна модели и передать ее в метод open, что-то вроде:

<h:commandButton onClick="openAModelDialog()" 
action="#{controller.open(rec, false, enteredDate)}" />

У меня есть SEAM 2.2, JSF и Richfaces. Не уверен, как лучше всего удовлетворить эту потребность.

То, чего я достиг до сих пор: Изменена кнопка для открытия модального диалога.

<a4j:commandButton onclick="#{rich:component('mp')}.show(); return false;" 
action="#{controller.open(rec, false)}" />

Настройка модального диалога:

<rich:modalPanel id="mp" minHeight="300" minWidth="450">
    <f:facet name="header">
        <h:outputText value="Enter Signature Date" />
    </f:facet>
        <table>
        <tr>
        <td>Enter Signature Date:</td>
        <td>
        <rich:calendar disabled="#{readOnly}" 
                enableManualInput="false" converterMessage="'Signature Date' must be a date."
                datePattern="MM/dd/yyyy" 
                value="#{searchController.enteredSignatureDate}"
                ajaxSingle="false" showWeekDaysBar="false" showWeeksBar="false"
                requiredMessage="Please provide the Signature Date."/>
        <input type="button" onclick="#{rich:component('mp')}.hide()" value="Enter" />
        </td>
        </tr>
        </table>
</rich:modalPanel>

Но сейчас я не знаю, как запечатлеть введенную дату.

1 Ответ

1 голос
/ 19 августа 2011

Не могли бы вы перенести свое первое действие на вашу модальную панель?Поэтому вместо того, чтобы иметь в своей модальной панели:

<input type="button" onclick="#{rich:component('mp')}.hide()" value="Enter" />

, у вас есть что-то вроде:

<a4j:commandButton oncomplete="#{rich:component('mp')}.hide()" action="#{controller.open(rec, false)}" value="Enter" />

Это должно быть внутри формы, чтобы работать.Первая кнопка для открытия модальной панели может быть использована для отображения панели и не вызывать никаких действий.Если модальная форма не находится внутри той же формы, что и первая кнопка, вы можете установить свои свойства в первой форме при отображении модальной панели, возможно, используя f: setPropertyActionListener?

...