我的数据表定义如下:
<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" styleClass="newStyle"
filteredValue="#{attrsBean.filteredDatatableList}">
<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 />
</p:column>
<p:column style="width:6px" exportable="false">
<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>
问题是当我选择项目时行为有点奇怪。有时,当我点击特定行时,它不会选择它,有时它会这样做,有时我需要多次单击才能选择一行。有人可以帮忙吗?也许我没有看到什么。
相关的支持bean代码是:
@PostConstruct
public void init() {
...
selektovani = new ArrayList<BasicModel>();
...
}
答案 0 :(得分:0)
我能找到的唯一答案是覆盖datatable.js中的onRowClick函数。更改符合if ($(event.target).is("td,span:not(.ui-c)")) {
行,我刚刚更改为if ($(event.target).is("td,span:not(.ui-c),.ui-cell-editor-output")) {
,现在可以正常使用了。我知道这不是好办法。