0

我有一个带有简单表单(用于搜索)和一个 dataTable(用于搜索结果)的 popupPanel。在提交表单并填充失败的搜索结果后,我尝试重新呈现数据表。这是源代码

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:rich="http://richfaces.org/rich"
    xmlns:rd2="http://www.logica.com/raindance/webcomp"
    xmlns:a4j="http://richfaces.org/a4j" template="/layout/template.xhtml">

    <ui:define name="head">

    </ui:define>
    <ui:define name="body" >


    .......................................


    <rich:popupPanel id="ruleSearchPanel" width="600" lenght="400" autosized="true">
            <f:facet name="header">
                <h:panelGroup id="modelPanelHeader">                    
                    <h:outputText styleClass="modalpanel-header"
                        value="Search and select a rule set"></h:outputText>
                </h:panelGroup>
            </f:facet>

            <h:form id="searchForm">                
                <h:panelGrid columns="2" styleClass="center" width="100%">
                    <h:inputText id="searchForKey" value="#{authRuleRegisterManager.rulSetSearchCriteria}"/>                    
                    <a4j:commandButton id="SearchRuleSets" styleClass="plain-btn fright" reRender="ruleSearchPanel"
                            value="#{messages.search}" type="submit" action="#{authRuleRegisterManager.searchAuthRulesMap(authRuleRegisterManager.rulSetSearchCriteria)}"
                    />                                  
            </h:panelGrid>      

        <rich:extendedDataTable  id="resultRuleSets" 
            value="#{authRuleRegisterManager.searchResultsForAuthRuleSets}" selectedClass="active-row"
            rows="#{systemSettingsAction.systemSettings.paginationRows.value}"
            var="ruleSet" 
            rowClasses="odd-row-selectable,even-row-selectable" 
            selectionMode="single">

            <rich:column  label="ruleset name"
                 headerClass="left"
                 styleClass="left" width="70">
                <f:facet name="header">
                    <h:outputText value="name" styleClass="right" />
                </f:facet>
                <h:outputText value="#{ruleSet.description}" />
            </rich:column>
        </rich:extendedDataTable>                   
            </h:form>    
    </rich:popupPanel>          
        </ui:define>
    </ui:composition>

为什么我不能重新渲染我的数据表,我在这里错过了什么吗?任何帮助将不胜感激。

4

1 回答 1

2

您正在使用的版本没有reRender属性。<a4j:commandButton>您可以查看下面的标签参考

a4j:命令按钮

根据我看到的代码(ui:composition未考虑在内),如果您想更新dataTable简单的更改

reRender="ruleSearchPanel"

render ="searchForm:resultRuleSets"

如果您对确定 ID 感到困惑,请查看以下链接

我如何知道 JSF 组件的 id 以便可以在 Javascript 中使用

注意:您正在使用的某些属性未在您正在使用的某些组件中定义。例如

lenght丰富的:popupPanel

selectedClass丰富的:扩展数据表

label富人:专栏

于 2013-07-29T15:08:07.653 回答