`
hanmiao
  • 浏览: 55043 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

通过 <p:commandButton> 的 oncomplete 属性实现其它按钮的激活与反激活

 
阅读更多
刚刚解决了壹個细小的技术问题,用 PrimeFaces 4.0 的 UI 组件完成界面元素的开发,XHTML 页面上共有三個按钮,id 分别为 verifyButton、viewButton、downloadButton,其中页面初始化时,verifyButton 处于激活状态(enable),viewButton 和 downloadButton 处于未激活状态(disable),当点击 verifyButton 之后,页面会向后台 Controller 发送 ajax 请求,然后在完成壹些业务逻辑之后返回页面,并将 viewButton 和 downloadButton 激活,此时三個按钮均处于可点击状态。页面部分源代码如下所示:
<h:form id="verificationForm">
<div class="button-padding right mt10">
	<p:commandButton id="verifyButton" value="校验" update="@this"
		widgetVar="verifyButton"
		disabled="#{!batchVerificationMB.enabledVerifyButton()}"
		process="@this batchVerificationTable"
		actionListener="#{batchVerificationMB.verify()}"
		oncomplete="validationUtil.handleAjaxResponse(args, displayErrorMessagesBathVerification, function(){displayVerifyMessage();viewButton.enable();downloadButton.enable();})" />
	<p:commandButton id="viewButton" value="查看"
		process="@this" widgetVar="viewButton"
		update=":verificationResultForm"
		onclick="verificationResultDialog.show();" />
	<p:commandButton id="downloadButton" value="导出" 
		process="@this" widgetVar="downloadButton"
		ajax="false" onclick="PrimeFaces.monitorDownload(start, stop)" icon="ui-icon-arrowthichk-s">
		<p:fileDownload value="#{fileDownloadController.file}" />
	</p:commandButton>
	<script type="text/javascript">
		viewButton.disable();
		downloadButton.disable();
	</script>
</div>
</h:form>

<h:form id="verificationResultForm">
//...此处省略部分代码
</h:form>
<p:dialog widgetVar="verificationResultDialog" modal="true" closable="true" resizable="false" width="800">
//...此处省略部分代码
</p:dialog>
其实只有两個地方需要注意,分别列举如下:
1、页面初始化时,我们需要通过Javascript脚本将viewButton和downloadButton设置为disable状态,见于第19和20行,其实就是普通的Javascript脚本;
2、另外,由于后面两個按钮是否激活是受按钮verifyButton控制的,所以我们需要在verifyButton里加上壹個属性 oncomplete,然后在 oncomplete 里面控制 viewButton 和 downloadButton 的激活状态;代码很长,但是并不复杂,实际只做了以下事情:先将后台反馈的信息显示在界面指定位置上,然后将 viewButton 和 downloadButton 激活;我们把 oncomplete 里的代码抽取出来是这样的。
validationUtil.handleAjaxResponse(
	args, 
	displayErrorMessagesBathVerification, 
	function(){
		//显示后台反馈的信息
		displayVerifyMessage();
		//将viewButton和downloadButton状态激活
		viewButton.enable();
		downloadButton.enable();
	}
)

其实说起来,PrimeFaces 4.0 的 <p:commandButton> 用起来并不复杂,只是自己还不熟悉其用法罢了。查看 PrimeFaces 4.0 官方文档是,它是这样介绍 oncomplete 属性的: 默认值为null,类型为String,当ajax请求完成之后客户端会回调属性oncomplete指定的内容。其实已经说的非常简单明了了。类似的事件属性还有 onstart、onsuccess、onerror 等,如果有兴趣的朋友可以自行查找 相关文档以了解更多细节。


分享到:
评论

相关推荐

    JSF文件上传

    &lt;h:commandButton value="Submit" action="#{myBean.processMyFile}"/&gt; &lt;h:outputText value=" "/&gt; &lt;/h:panelGrid&gt; &lt;/h:form&gt; &lt;/f:view&gt; 其中tags.jsp文件如下: &lt;%@ page language="java" pageEncoding="GB...

    精通JSF标签一字不漏

    f:actionListener标签为h:commandLink,h:commandButton等指定自定义的事件侦听类。 f:actionListener使用: JSP: &lt;h:commandButton id="regist" value="Regist"&gt; &lt;f:actionListener type=...&lt;/h:commandButton&gt;

    JSF2.xdatatable分页控件与左侧菜单最简单应用

     提示:&lt;e:menu value="#{menuBean.model}" action="#{menuBean.navigationAction}"&gt;&lt;/e:menu&gt;中的menuBean是你自己定义的managedbean, 并且要extends EMS11185MenuBean; action="#{menuBean.navigationAction...

    神童教程:跟我来学VB

    用 Visual Basic 绘画:&lt;br&gt;&lt;br&gt;第一节——图形框与图像框控件&lt;br&gt;&lt;br&gt;第二节——综合示例六&lt;br&gt;&lt;br&gt;第三节——直线与形状控件&lt;br&gt;&lt;br&gt;第四节——常用的绘图方法&lt;br&gt;&lt;br&gt;第四章:菜单与多文档界面的制作:&lt;br&gt;&lt;br&gt;第...

    JSF文件下载实现

    &lt;h:commandButton value="download" action="#{aBean.download}"&gt;&lt;/h:commandButton&gt; 或者 &lt;h:commandLink value="download" action="#{fileUploadForm.download}"&gt;&lt;/h:commandLink&gt; 2、jsp页面可以这样调用: &lt;%@...

    VB编程资源大全(英文控件)

    &lt;END&gt;&lt;br&gt;67,OCXButton1.zip&lt;br&gt;An ActiveX control (OCX) for creating Buttons with attributes unavailable in the intrinsic CommandButton control of VB&lt;END&gt;&lt;br&gt;68,transferTV.zip&lt;br&gt;Transfers values from...

    VB 浮动按钮制作小例

    &lt;br&gt;&lt;br&gt;&lt;br&gt;我的思路是:&lt;br&gt; 舍弃CommandButton控件,每个按钮用4条Line控件和一个Label控件替代。4条Line围住Label的边缘,调入窗体时,置显示属性为False,并将左、上直线的颜色设为白色,右、下直线的颜色设为...

    VB编程资源大全(控件 其它1)

    1,initoolseup.EXE &lt;br&gt;读写 INI 文件的控件(258KB) &lt;br&gt;2,djchart.ZIP&lt;br&gt;djchart(57KB)&lt;br&gt;3,indicator.ZIP&lt;br&gt;数据棒图控件(200KB)&lt;br&gt;4,xjtpripr.ZIP &lt;br&gt;打印预览控件(257KB) &lt;br&gt;5,trend.ZIP&lt;br&gt;趋势控件可...

    VB编程资源大全(控件 其它2)

    1,initoolseup.EXE &lt;br&gt;读写 INI 文件的控件(258KB) &lt;br&gt;2,djchart.ZIP&lt;br&gt;djchart(57KB)&lt;br&gt;3,indicator.ZIP&lt;br&gt;数据棒图控件(200KB)&lt;br&gt;4,xjtpripr.ZIP &lt;br&gt;打印预览控件(257KB) &lt;br&gt;5,trend.ZIP&lt;br&gt;趋势控件可...

    VB编程资源大全(控件 其它3)

    1,initoolseup.EXE &lt;br&gt;读写 INI 文件的控件(258KB) &lt;br&gt;2,djchart.ZIP&lt;br&gt;djchart(57KB)&lt;br&gt;3,indicator.ZIP&lt;br&gt;数据棒图控件(200KB)&lt;br&gt;4,xjtpripr.ZIP &lt;br&gt;打印预览控件(257KB) &lt;br&gt;5,trend.ZIP&lt;br&gt;趋势控件可...

    初中信息技术知识点【VB】.doc

    循环结构 二:控件与常用属性词 Label标签 TextBox文本框 CommandButton命令按钮 OptionButton单选按钮 Caption标题 Text文字 Font字体 FontSize字号 BackColor背景色 True真 False假 三:常用函数 1.Int() 取整函数...

    CommandButton按钮文字布局及换色使用实例

    听朋友说微软的CommandButton按钮控件不好用,其实很好用啊,可能你没找到方法,这个程序就是用CommandButton编写的,只拿BOTT...

    VB按钮制作实例:文字对齐和按钮换色.rar

    VB按钮制作实例:文字对齐和按钮换色,使用CommandButton按钮控件制作按钮的例子,分别可以定义按钮三种状态下的样式,比如按钮默认状态、按钮按下、按钮滑过,另外还可设置按钮上面文字的对齐方式、载入外部图像、...

    excel中应用vba的实例(点击一个按钮就将e盘目录打印出来)

    If strFileName &lt;&gt; "." And strFileName &lt;&gt; ".." Then If (GetAttr(strDirectory & strFileName) And vbDirectory) = vbDirectory Then Range("A" & i).Select i = i + 1 ActiveCell.FormulaR1C1 = strFileName...

    SalesforceIframeInputFile:顶尖

    SalesforceIframe 输入文件 Apex:InputFile 通过具有跨... apex:inputFile 不能与指定 rerender 或 oncomplete 属性的动作组件 apex:commandButton 或 apex:commandLink 结合使用 有关解决方案的完整说明,请参阅文章:

    超级按钮源代码

    // 具体属性请看按钮的属性值,注:按钮的属性为中文属性 // // 增加PB自带图片锁定功能〔如果图片为PB自带图片,只要选择按钮的PB自带图片 // 属性即可锁定图片大小为原始尺寸〕 // 增加了所有状态的属性开关...

    VB控件属性大全【珍藏版】

    1.05、命令按钮控件(CommandButton)的常用属性 15 1.06、复选框控件(CheckBox)的常用属性 17 1.07、单选钮控件(OptionButton)的常用属性 19 1.08、组合框控件(ComboBox)常用属性 22 1.09、列表框控件(ListBox)的常用...

    1VB程序设计初步.pptx

    张老师 小斌 小红 目录 VB中常用基本类有: Label类:标签类 Commandbutton类:命令按钮类 Textbox类:文本框类 Form类:窗体类 Shape类:形状类 1VB程序设计初步全文共25页,当前为第3页。 属性:即静态特征 身高 ...

    ajax4jsf中文教程

    支持的 JavaServer Faces 实现 支持的服务器 支持的浏览器 7. 附加的设置 Web程序描述符参数 Sun JSF RI Apache MyFaces Facelets 支持 JBoss Seam 支持 8. 与IDE集成 9. Exadel VCP 和 Ajax4jsf 10. Web上...

Global site tag (gtag.js) - Google Analytics