Jsf PrimeFaces Datatable-可拖动列在第一次启动时失败

Jsf PrimeFaces Datatable-可拖动列在第一次启动时失败,jsf,primefaces,datatable,draggable,Jsf,Primefaces,Datatable,Draggable,我有一个由数据库中的项目填充的数据表。一切正常。 现在,我想让列和行都可以拖动 提交表单时,数据表不可见。当我检查html页面时,没有显示任何内容 当我通过F5刷新时仍然是一样的,但我必须转到URL并按Enter键,然后我的datatable现在可见并可拖动 这是我的数据表设置: <p:dataTable id="datatable" var="mon" value="#{X.resultQuery}" first="#{dataTabl

我有一个由数据库中的项目填充的数据表。一切正常。 现在,我想让列和行都可以拖动

提交表单时,数据表不可见。当我检查html页面时,没有显示任何内容

当我通过F5刷新时仍然是一样的,但我必须转到URL并按Enter键,然后我的datatable现在可见并可拖动

这是我的数据表设置:

<p:dataTable id="datatable" var="mon" value="#{X.resultQuery}" 
                         first="#{dataTableController.first}"
                         resizableColumns="true"
                         rows="20"
                         paginator="true"
                         paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                         rowsPerPageTemplate="30,40,50"
                         draggableColumns="true"
                         draggableRows="true"
                         paginatorPosition="bottom">
提交前的屏幕截图:

提交后的屏幕截图:

在url部分非F5中按Enter键后的屏幕截图: 这就是我想要的


我怎样才能做到这一点?那是来自Primefaces的虫子吗

数据表是在ajax帖子之后添加到页面的吗?我猜这个特性可能只适用于在某种类型的整页回发中初始化的数据表。如果看不到整个页面以及初始化dataTable时会发生什么情况,就无法判断。我不这么认为。我在commandButton上禁用了ajax。我找到了一种方法,通过使用FacesContext context=FacesContext.getCurrentInstance;字符串viewId=context.getViewRoot.getViewId;ViewHandler=context.getApplication.getViewHandler;UIViewRoot root=handler.createViewcontext,viewId;root.setViewIdviewId;context.setViewRootroot;