JSF实现h:selectOneMenu 联动框处理,更改下拉框显示。

目的:

当下拉框改动的时候,则前端显示的按钮根据下拉框改动来更改。

写一个监听,当下拉框更改的时候,则调用后台的类,更新状态,再reRender 回传渲染给组件。

核心代码:

在h:selectOneMenu 下拉框中,使用这句话来变动状态显示核心代码:

 <a4j:support event="onchange" actionListener="#{InvoiceManager.linkageOfSelectOneMenu}"  reRender="selectSuNingInvoice,commitSuNingInvoice,linkageOfSelectOneMenuPanelGrid,linkageOfhSelectOneMenu" ajaxSingle="true"></a4j:support>  

话不多说,上完整代码:

前端页面代码:

		<%-- 显示查找下拉列表选项--%>	
			<h:panelGrid columns="2" width="100%" rowClasses="table_row1" id="linkageOfSelectOneMenuPanelGrid" >
				
				<h:selectOneMenu value="#{InvoiceManager.joinType}" readonly="#{InvoiceManager.checkOrder}" id="linkageOfhSelectOneMenu" >
					<f:selectItem itemValue="Y" itemLabel="小熊订单"/>
					<f:selectItem itemValue="N" itemLabel="小兔订单"/>
					 <a4j:support event="onchange" actionListener="#{InvoiceManager.linkageOfSelectOneMenu}"  reRender="selectSuNingInvoice,commitSuNingInvoice,linkageOfSelectOneMenuPanelGrid,linkageOfhSelectOneMenu" ajaxSingle="true"></a4j:support>  
				</h:selectOneMenu>
	

				<%-- 确认关联按钮--%>	
				<a4j:commandLink action="#{InvoiceManager.confirmJoinOrder}" value="#{msg.confirm}" reRender="confirmJoinGroup" 
				   	onclick="javascript:Richfaces.showModalPanel('updatingpanel');"
				   	oncomplete="javascript:Richfaces.hideModalPanel('updatingpanel');" rendered="#{!InvoiceManager.close && InvoiceManager.checkOrder}" id ="commitSuNingInvoice"> 
			   	</a4j:commandLink>
			   	<%-- 查询按钮--%>
				<a4j:commandLink action="#{InvoiceManager.checkJoinOrder}" value="#{msg.tbOrder_checkOrder}" reRender="confirmJoinGroup"
				   	onclick="javascript:Richfaces.showModalPanel('updatingpanel');"
				   	oncomplete="javascript:Richfaces.hideModalPanel('updatingpanel');" rendered="#{!InvoiceManager.close && !InvoiceManager.checkOrder}" id ="selectSuNingInvoice"> 
			   	</a4j:commandLink>
				<%-- 关闭按钮--%>
				<h:commandLink value="#{msg.close}" rendered="#{!InvoiceManager.close}"
				   	onclick="javascript:Richfaces.hideModalPanel('confirmJoinOrder');return false;" >
				</h:commandLink>
 			
			</h:panelGrid >

后台代码:

 

import javax.faces.event.ActionEvent;
导入若干包....


public class InvoiceManager  {

	private boolean serious;//标记是否显示
		private boolean close;//记录关联发票时候是否显示
		private String joinType;//记录关联发票时候方式
		private boolean checkOrder;
		private String checkOrderMessage;
        
...get和set上边字段

//下拉框联动处理
		public String linkageOfSelectOneMenu(ActionEvent e) throws Exception {
            //清空值,重置前端,这时候前端接收到就自动改变状态
			checkOrder=false;
			checkOrderMessage=null;
			exportMsg=null;
			order_key=null;
			System.out.println(joinType);
			return null;
		}

         public void confirmJoinOrder(){
            //若干你的需求
        }
         public void checkJoinOrder(){
            //若干你的需求
        }
}

猜你喜欢

转载自blog.csdn.net/qq_36411874/article/details/95222275