Dialog中的DataTable导致错误的宽度

Die*_*wer 5 datatable dialog modal-dialog primefaces jsf-2

我想p:dataTable在模态中显示一个内部p:dialog(需要删除的条目).当我像附加示例那样执行类似操作时,对话框显示为100%宽度.我怎么能避免这个?如果没有p:datatable,则根据其内容呈现对话框.

最小的例子:

<p:dialog header="Example" widgetVar="exampleDlg" closable="true" 
          resizable="false" appendTo="@(body)" modal="true">
    <h:form id="exampleForm">
        <p:dataTable emptyMessage="Even an empty DataTale">
        </p:dataTable>
    </h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)

我在使用Primefaces 5.1快照,但5.0版也一样.我尝试了afterdark,bootstrap和默认主题,总是同样的问题.

mrg*_*ser 1

您可能将该数据表设置为具有某种可缩放/百分比宽度的样式width: 100%;,因此对话框占用了所有空间以便相应地表示数据表的宽度。因此,您有两种选择来修复它:

给对话框一个宽度:

<p:dialog header="Example" widgetVar="exampleDlg" closable="true" 
                      resizable="false" appendTo="@(body)" modal="true" width="50%">
Run Code Online (Sandbox Code Playgroud)

<p:dialog header="Example" widgetVar="exampleDlg" closable="true" 
                      resizable="false" appendTo="@(body)" modal="true" width="400">
Run Code Online (Sandbox Code Playgroud)

或者给数据表一个固定的宽度:

<p:dataTable emptyMessage="Even an empty DataTale" style="width: 300px;">
Run Code Online (Sandbox Code Playgroud)