使用其他按钮将roweditor排列在同一列中

时间:2013-07-23 12:01:21

标签: jsf-2 primefaces

我有数据表,我使用roweditor。一切正常但我需要在列中添加更多按钮,其中我有铅笔按钮进行编辑。那个“其他”按钮总是低于铅笔。我已经尝试了<p:panelgrid columns="3"...但是当我做那行时,edithing是不可能的。我想问题在于行编辑带来的其他两个按钮(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>

5 个答案:

答案 0 :(得分:2)

在Primefaces 5.x中:

.ui-row-editor:after {
     clear: none !important;
}

答案 1 :(得分:1)

我通过用以下内容覆盖css解决了这个问题:

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

答案 2 :(得分:0)

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

<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> 的范围受controlColumn

宽度的限制

答案 3 :(得分:0)

另一种解决方案:

.ui-row-editor {
    float: left;
}

答案 4 :(得分:0)

我的另一种解决方法:

* 934af86 2020-04-27 | [maven-release-plugin] prepare branch release-v1.2.1 (HEAD -> master) [Commiter Name]