刚刚解决了壹個细小的技术问题,用 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 等,如果有兴趣的朋友可以自行查找
相关文档以了解更多细节。
分享到:
相关推荐
<h:commandButton value="Submit" action="#{myBean.processMyFile}"/> <h:outputText value=" "/> </h:panelGrid> </h:form> </f:view> 其中tags.jsp文件如下: <%@ page language="java" pageEncoding="GB...
f:actionListener标签为h:commandLink,h:commandButton等指定自定义的事件侦听类。 f:actionListener使用: JSP: <h:commandButton id="regist" value="Regist"> <f:actionListener type=...</h:commandButton>
提示:<e:menu value="#{menuBean.model}" action="#{menuBean.navigationAction}"></e:menu>中的menuBean是你自己定义的managedbean, 并且要extends EMS11185MenuBean; action="#{menuBean.navigationAction...
用 Visual Basic 绘画:<br><br>第一节——图形框与图像框控件<br><br>第二节——综合示例六<br><br>第三节——直线与形状控件<br><br>第四节——常用的绘图方法<br><br>第四章:菜单与多文档界面的制作:<br><br>第...
<h:commandButton value="download" action="#{aBean.download}"></h:commandButton> 或者 <h:commandLink value="download" action="#{fileUploadForm.download}"></h:commandLink> 2、jsp页面可以这样调用: <%@...
<END><br>67,OCXButton1.zip<br>An ActiveX control (OCX) for creating Buttons with attributes unavailable in the intrinsic CommandButton control of VB<END><br>68,transferTV.zip<br>Transfers values from...
<br><br><br>我的思路是:<br> 舍弃CommandButton控件,每个按钮用4条Line控件和一个Label控件替代。4条Line围住Label的边缘,调入窗体时,置显示属性为False,并将左、上直线的颜色设为白色,右、下直线的颜色设为...
1,initoolseup.EXE <br>读写 INI 文件的控件(258KB) <br>2,djchart.ZIP<br>djchart(57KB)<br>3,indicator.ZIP<br>数据棒图控件(200KB)<br>4,xjtpripr.ZIP <br>打印预览控件(257KB) <br>5,trend.ZIP<br>趋势控件可...
1,initoolseup.EXE <br>读写 INI 文件的控件(258KB) <br>2,djchart.ZIP<br>djchart(57KB)<br>3,indicator.ZIP<br>数据棒图控件(200KB)<br>4,xjtpripr.ZIP <br>打印预览控件(257KB) <br>5,trend.ZIP<br>趋势控件可...
1,initoolseup.EXE <br>读写 INI 文件的控件(258KB) <br>2,djchart.ZIP<br>djchart(57KB)<br>3,indicator.ZIP<br>数据棒图控件(200KB)<br>4,xjtpripr.ZIP <br>打印预览控件(257KB) <br>5,trend.ZIP<br>趋势控件可...
循环结构 二:控件与常用属性词 Label标签 TextBox文本框 CommandButton命令按钮 OptionButton单选按钮 Caption标题 Text文字 Font字体 FontSize字号 BackColor背景色 True真 False假 三:常用函数 1.Int() 取整函数...
听朋友说微软的CommandButton按钮控件不好用,其实很好用啊,可能你没找到方法,这个程序就是用CommandButton编写的,只拿BOTT...
VB按钮制作实例:文字对齐和按钮换色,使用CommandButton按钮控件制作按钮的例子,分别可以定义按钮三种状态下的样式,比如按钮默认状态、按钮按下、按钮滑过,另外还可设置按钮上面文字的对齐方式、载入外部图像、...
If strFileName <> "." And strFileName <> ".." Then If (GetAttr(strDirectory & strFileName) And vbDirectory) = vbDirectory Then Range("A" & i).Select i = i + 1 ActiveCell.FormulaR1C1 = strFileName...
SalesforceIframe 输入文件 Apex:InputFile 通过具有跨... apex:inputFile 不能与指定 rerender 或 oncomplete 属性的动作组件 apex:commandButton 或 apex:commandLink 结合使用 有关解决方案的完整说明,请参阅文章:
// 具体属性请看按钮的属性值,注:按钮的属性为中文属性 // // 增加PB自带图片锁定功能〔如果图片为PB自带图片,只要选择按钮的PB自带图片 // 属性即可锁定图片大小为原始尺寸〕 // 增加了所有状态的属性开关...
1.05、命令按钮控件(CommandButton)的常用属性 15 1.06、复选框控件(CheckBox)的常用属性 17 1.07、单选钮控件(OptionButton)的常用属性 19 1.08、组合框控件(ComboBox)常用属性 22 1.09、列表框控件(ListBox)的常用...
张老师 小斌 小红 目录 VB中常用基本类有: Label类:标签类 Commandbutton类:命令按钮类 Textbox类:文本框类 Form类:窗体类 Shape类:形状类 1VB程序设计初步全文共25页,当前为第3页。 属性:即静态特征 身高 ...
支持的 JavaServer Faces 实现 支持的服务器 支持的浏览器 7. 附加的设置 Web程序描述符参数 Sun JSF RI Apache MyFaces Facelets 支持 JBoss Seam 支持 8. 与IDE集成 9. Exadel VCP 和 Ajax4jsf 10. Web上...