4

我有使用 roweditor 的数据表。一切正常,但我需要在我有铅笔按钮进行编辑的列中添加更多按钮。那个“其他”按钮总是在铅笔下面。我已经尝试过<p:panelgrid columns="3"...,但是当我这样做时,行编辑是不可能的。我想问题出在行编辑附带的其他两个按钮上,(ui-icon-checkui-icon-close)。谁能给我一个想法?这是我的数据表:

        <p:dataTable id="sifarnikTable" rowIndexVar="rowIndex" 
            value="#{attrsBean.listOfDataBeans}" editable="true" 
            selectionMode="multiple" selection="#{attrsBean.selektovani}"
            widgetVar="datatableWidget" var="row" rowKey="#{row.primaryKey}"
            paginator="true" paginatorPosition="bottom" 
            paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}"
            currentPageReportTemplate="{startRecord} - {endRecord} / {totalRecords}"
            emptyMessage="#{messages['datatable.emptymessage']}" rows="15"
            sortMode="multiple" paginatorAlwaysVisible="false" 
            filteredValue="#{attrsBean.filteredDatatableList}">
            <f:facet name="header">
                #{resources['db_parametri.title']}
            </f:facet>

            <p:ajax event="rowSelect" />
            <p:ajax event="rowUnselect" />

            <p:ajax event="rowEdit" listener="#{attrsBean.onEdit}"
                update=":aswdatatable:form:messages, :aswdatatable:form:sifarnikTable, :aswdatatable:form:noviBtn" />

            <p:ajax event="rowEditCancel" listener="#{attrsBean.onCancel}"
                update=":aswdatatable:form:messages" />

            <p:columns id="columns" var="column" value="#{attrsBean.columns}" 
                style="#{column.css}" width="#{column.width}"
                sortBy="#{row[column.property]}"
                filterStyle="#{attrsBean.columnCSS}"
                filterBy="#{attrsBean.showFilter==false ? null : row[column.property]}">
                <f:facet name="header">
                    <h:outputText value="#{column.header}" />
                </f:facet>
                <p:cellEditor>
                    <f:facet name="output">
                        <h:outputText value="#{row[column.property]}" />
                    </f:facet>
                    <f:facet name="input">
                        <p:inputText value="#{row[column.property]}" style="width:96%"></p:inputText>
                    </f:facet>
                </p:cellEditor>

            </p:columns>
            <p:column style="width:6px" exportable="false" >                
                <p:rowEditor />
                <div
                    onclick="datatableWidget.unselectAllRows();datatableWidget.selectRow(#{rowIndex}, false);">
                    <h:panelGroup layout="block">
                        <p:cellEditor>
                            <f:facet name="output">

                                <p:commandLink id="deleteBtn"
                                    onclick="datatableWidget.unselectAllRows();datatableWidget.selectRow(#{rowIndex}, false);brisanjeWidget.show()"
                                    process="@this"
                                    update=":aswdatatable:form:brisanjeDisplay, :aswdatatable:form:sifarnikTable"
                                    styleClass="ui-icon ui-icon-trash">

                                    <f:setPropertyActionListener
                                        target="#{attrsBean.modelForDelete}" value="#{row}" />
                                </p:commandLink>
                            </f:facet>
                            <f:facet name="input">
                                <h:outputText value="" />

                            </f:facet>
                        </p:cellEditor>
                    </h:panelGroup>
                </div>
            </p:column>


        </p:dataTable>
4

5 回答 5

2

在 Primefaces 5.x 中:

.ui-row-editor:after {
     clear: none !important;
}
于 2015-03-26T14:34:39.800 回答
1

我通过覆盖css解决了这个问题:

.ui-row-editor{ display: inline; }

于 2013-11-04T13:55:29.737 回答
0

设置的style="width: 100%"属性<p:column/>。这样,该列将调整大小以适应任何其他组件。然后,列的跨度只能受任何封闭容器的大小限制。例如

 <h:panelGrid id="theGrid" style="width:200px">
    <p:dataTable var="car" value="#{tableBean.carsSmall}" id="carList" editable="true">  
        <p:column id="controlColumn" style="width:100%">  
            <p:rowEditor />
            <p:commandButton value="Testing"/>
        </p:column> 
    </p:dataTable>
</h:panelGrid>

在上面的代码片段中,跨度controlColumntheGrid

于 2013-07-23T18:02:17.097 回答
0

我的另一个解决方案:

.ui-row-editor{
    display: inline-block;
}
于 2020-04-27T23:11:49.370 回答
0

另一种解决方案:

.ui-row-editor {
    float: left;
}
于 2018-03-19T14:39:10.040 回答