jsf中未使用ajax调用呈现Datatable

jsf中未使用ajax调用呈现Datatable,ajax,jsf-2,datatable,Ajax,Jsf 2,Datatable,我有一个数据表,在使用每行中的ajax命令时需要刷新它 <div class="authorSection"> <h:dataTable id="author-table" var="author" value="#{authorPOCBean.getauthors()}"> <h:column> <f:facet name="header"> <h:output

我有一个数据表,在使用每行中的ajax命令时需要刷新它

<div class="authorSection">
    <h:dataTable id="author-table" var="author" value="#{authorPOCBean.getauthors()}">
        <h:column>
            <f:facet name="header">
                <h:outputText value="Org Short Name" />
            </f:facet>
            <h:outputText id="authorOrganizationShortName" value="#author.orgShortName}" />
        </h:column>
        <h:column>
            <f:facet name="header">
                <h:outputText value="Organization Name" />
            </f:facet>
            <h:outputText id="authorOrganizationName" value="#{author.orgName}" />
        </h:column>
        <h:column>                
            <f:facet name="header">
                <h:outputText value="Location" />                
            </f:facet>
            <h:outputText id="authorLocation" value="#{author.orgLocation}" />
        </h:column>
        <h:column>
            <f:facet name="header">
                <h:outputText value="author Type" />
            </f:facet>
            <h:outputText id="authorType" value="#{author.authorName}" />
        </h:column>
        <h:column>
            <h:form id="deleteauthorForm">
                <h:commandLink action="#{authorPOCBean.deleteauthor(author)}" value="Delete">                    
                    <f:ajax render=":author-table"/>
                </h:commandLink>
            </h:form>
            <h:form id="setInitialauthorForm">
                <h:commandLink action="#{authorPOCBean.makeInitialauthor(author)}" value="Make Initial"/>                
            </h:form>
        </h:column>
    </h:dataTable>
</div>

使用delete函数时,表似乎保持不变,或者可能使用旧数据呈现?我现在已经将它设置为被调用的方法所做的第一件事是更改内部数组,然后更改数据库内容,但它仍然使用旧数据

我的代码有什么明显的错误吗

我已经查看了下面的链接并尝试了这些建议,但没有新的结果。事实上,如果我用一个表格围在桌子周围,桌子就不会建对


请注意,您已将删除按钮和生成初始按钮放在单独的表单中,而DataTable组件则放在表单之外

尝试从表格的开头开始创建一个表单。(即)表格组件和两个按钮应包含在同一表格中

对于Ajaxical刷新,以下内容应该适合您

   <f:ajax render="@form"/>


如果由于其他原因,您不能使用单个表单,并且需要多个表单,请参考此问题

您在数据表中有表单,这可能不是一种有效的方法?请确保没有高于极限的
,没有高于数据表,您在Servlet 3.0容器上运行,并且您的操作实际上被命中(没有拼写错误等)通过在方法上放置断点。检查后联系。并向我们展示您的bean操作方法。这使按钮工作,但现在datatable的所有特殊功能(搜索、排序、格式)不再工作。现在它只是一个简单的未经修饰的表。知道为什么吗?