2011-08-19 44 views
-1

我在搜索结果页面上有一个编辑按钮,每按一次该按钮都会提示用户在继续进入下一页之前输入日期。如何捕获在rich:modalpanel中输入的输入?

按钮不具备模态特性:

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

不知怎的,我想打开页面以获取从模型对话框中输入的日期,并把它传递给open方法之前引入一个模式diaglog,像这样:

<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

难道你不能将你的第一个动作移动到你的模态面板?因此,而不是在你的模式面板:

<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来显示模态面板,以第一种形式设置属性。

+0

试一试会让你知道。谢谢。 –

+0

我想我已经挂了,试图让enterDate方法的一个参数,并无法弄清楚如何获取日期以包含在打开的调用中。但是你是对的,模态对话框现在具有action属性,它正在工作,我只是使enteredDate成为控制器的一个属性。 –