从数据网格内的链接触发blockui



我有下面的数据网格,它显示了一个学生姓名列表作为链接。

    <h:form id="gsform">
                <p:dataGrid var="stuvar" rendered="#{gradeSheetController.listStudent != null}" 
                            value="#{gradeSheetController.listStudent}" columns="5" layout="grid">
                                <p:commandLink actionListener="#{gradeSheetController.readStudentGradeSheet}" 
                                                        update=":gsform:gscont, :gsform:buttoncont">
                                    <h:outputText id="stname" style="font-size:16px" value="#{stuvar.studentFirstName}" />
                                    <f:param name="selstudent" value="#{stuvar.studentSeq}" />
                                </p:commandLink>
                </p:dataGrid>

我还有下面的blockUI来冻结屏幕,直到后端处理完成,目前用于保存按钮。

        <p:blockUI block=":entirePageBody" trigger="savebutton">
            <h:panelGrid id="blockContent" columns="2">
                <h:graphicImage library="images" name="loading.gif" style="margin-right:12px; vertical-align:middle;" />
                <h:outputText value="Please wait, data is being processed..." style="white-space:nowrap;" />
            </h:panelGrid>
        </p:blockUI>

现在,我也想在点击学生名称链接时触发blockUI。显然,由于学生的数量是动态的,并且在数据网格中,生成的代码包括id的其他方面,如id="gsform:j_idt168:1:stname"、id="gsform:j_idt2:stname"等等

不知道如何在点击数据网格中的学生姓名链接时触发blockUI,请建议。

使用onclick/oncomplete 从dataGrid中触发/隐藏blockUI

    <p:dataGrid var="stuvar" rendered="#{gsExamController.listStudent != null}" 
            value="#{gsExamController.listStudent}" columns="5" layout="grid">
            <p:commandLink actionListener="#{gsExamController.readStudentGradeSheet}" 
                        onclick="PF('bui').show()"
                        oncomplete="PF('bui').hide()"
                        update=":gsform:gscont, :gsform:remarkcont, :gsform:buttoncont">
                    <h:outputText style="font-size:16px" value="#{stuvar.studentFirstName}" />
                    <f:param name="selstudent" value="#{stuvar.studentSeq}" />
                </p:commandLink>
    </p:dataGrid>


<p:blockUI block=":entirePageBody" trigger="savebutton" widgetVar="bui">
    <h:panelGrid id="blockContent" columns="2">
        <h:graphicImage library="images" name="loading.gif" style="margin-right:12px; vertical-align:middle;" />
        <h:outputText value="Please wait, data is being processed..." style="white-space:nowrap;" />
    </h:panelGrid>
</p:blockUI>

问题的一个简单解决方案是使用Primefaces的选择器。

例如:

<p:commandLink value="Click me." styleClass="blockMeWhenClicked" />
<p:blockUI block=":ElementToBeBlocked" trigger="@(.blockMeWhenClicked)" /> 

相关内容

  • 没有找到相关文章

最新更新