2016-08-30 20 views
0

私はibm jsf 1.2を使用しています。私はボタンが付いたメインフォームを持っています。ボタンが押されると、いくつかのバリデーションに従ってレンダリングされるフィールドを持つ新しいパネルダイアログが開きます。ここでレンダリングされたbeanメソッドは、panelDialogのレンダリングで呼び出されませんか?

は私が.jspファイルです:panelDialog上でレンダリング

<hx:jspPanel> 
<fieldset> 
<h:panelGrid 
<hx:commandExButton type="button" 
value="#{msg.buttonAddContainer}" id="chooseContainerButton"> 
<hx:behavior event="onclick" behaviorAction="get;show" 
id="behavior2" targetAction="gridListContainers;containerDialog" /> 
</hx:commandExButton> 
</h:panelGrid> 
</fieldset> 
</hx:jspPanel> 


<hx:panelDialog type="modal" id="containerDialog" 
noKeybindings="true" showTitleCloseButton="false" 
onshow="openDialog()" onhide="closeDialog()" 
styleClass="panelDialog" title="#{msg.lblContainer}"> 

<h:panelGrid id="gridContainerNumber"> 
<h:outputLabel for="inputContainerNumber"></h:outputLabel> 
<h:inputText id="inputContainerNumber" styleClass="inputText"> 
<!-- some other field - container number--> 
<h:message for="inputContainerNumber" id="messageInputContainerNumber"> </h:message> 

<h:outputLabel id="labelInputBookingNumber" styleClass="outputLabel" 
for="inputBookingNumber" value="#{msg.lblBookingNumber}" 
    rendered="#{myBean.isBookingNumberRendered}"> 
</h:outputLabel> 
<h:inputText id="inputBookingNumber" immediate="true" 
value="#{myBean.bookingNumber}" 
rendered="#{myBean.isBookingNumberRendered}" styleClass="inputText"> 
</h:inputText> 
<h:message id="mesageInputBookingNumber" 
styleClass="message" for="inputBookingNumber" 
rendered="#{myBean.isBookingNumberRendered}"> 
</h:message> 
</h:panelGrid> 

<h:panelGroup id="groupClear" styleClass="buttonGroup"> 
<hx:commandExButton id="submitButton" 
styleClass="positive" 
action="#{myBean.saveContainer}" 
type="submit" immediate="true" value="#{msg.buttonSave}"> 
</hx:commandExButton> 
<hx:commandExButton id="cancelButton" 
styleClass="negative" 
action="#{myBean.clearContainer}" 
type="submit" immediate="true" value="#{msg.buttonCancel}"> 
<hx:behavior event="onclick" behaviorAction="get;hide" id="behavior6" 
targetAction="helpBox1;containerDialog"></hx:behavior> 
</hx:commandExButton> 
</h:panelGroup> 

<hx:ajaxRefreshSubmit target="gridListContainers" id="ajaxSubmit1" 
onstart="showProgressBar();" oncomplete="hideProgressBar();"> 
</hx:ajaxRefreshSubmit> 
</hx:panelDialog> 

私は期待通りに動作していません。レンダリングチェックメソッドisBookingNumberRenderedは、ダイアログが最初に開いたときに呼び出されないため、検証基準が満たされたときに予約番号フィールドは表示されません。私がdialogPanelに他のフィールドを入力し、Saveボタンを押すと(isBookingNumberRenderedが呼び出されます)、再びcontainerButtonを選択すると、フィールドが表示されます。
panelDialogがレンダリングされたときにisBookingNumberRenderedメソッドが初めて呼び出されるのはなぜですか? 助けてください。

敬具、
mismas

答えて

0

は私が持っていた
:)それを考え出した:

<hx:behavior event="onclick" behaviorAction="get;show" 
id="behavior2" targetAction="gridListContainers;containerDialog" /> 

どこパネルグリッドのないIDが<h:panelGrid id="gridContainerNumber">
だから私はちょうどそれを変更したgridListContainers<h:panelGrid id="gridListContainers">それは正常に働いた。
何も不平を言うことはありません、あなたはちょうど奇妙な行動を取ることは非常にうれしいです...

関連する問題