Jsf 单击中的客户端事件处理程序会导致重新提交页面
我对以下代码有奇怪的问题:-Jsf 单击中的客户端事件处理程序会导致重新提交页面,jsf,primefaces,Jsf,Primefaces,我对以下代码有奇怪的问题:- <p:dataTable id="dataTbl_mnuItmList_id" rows="5" paginator="true" paginatorPosition="top" value="#{addMenuItemMB.menuItemList}" var="menuItem" style="width:100%; height:100%"&g
<p:dataTable id="dataTbl_mnuItmList_id" rows="5"
paginator="true" paginatorPosition="top"
value="#{addMenuItemMB.menuItemList}" var="menuItem"
style="width:100%; height:100%">
<p:column headerText="Item Name" sortBy="itemName">
<h:outputText value="#{menuItem.itemName}" />
</p:column>
<p:column headerText="Created Date" sortBy="createdDate">
<h:outputText value="#{menuItem.createdDate}">
</h:outputText>
</p:column>
<p:column headerText="Modified Date" sortBy="modifiedDate">
<h:outputText value="#{menuItem.modifiedDate}" />
</p:column>
<p:column>
<p:commandButton id="cmdBtn_edit"
onclick="widVar_menuItem.unselectAllRows()"
update=":frm_addMnuItm_dlg:outPutPnl_addMnuItmDlg_id"
oncomplete="PF('dlg_addMnuItem_widVar').show()"
icon="ui-icon-pencil" title="Edit" value="Edit">
<f:setPropertyActionListener value="#{menuItem}"
target="#{addMenuItemMB.menuItemToEdit}" />
</p:commandButton>
</p:column>
</p:dataTable>
以下是具有widgetVar=widVar\u menuItem的数据表
上面的代码在datatable列中具有命令按钮,该列具有属性f:setPropertyActionListener,它工作正常。但当我添加onclick客户机事件处理程序时,页面被提交,当我从命令按钮中删除onclick属性时,它工作正常。所以我的问题是上面的代码有什么问题,或者我意识到可能是错误的,客户端事件处理程序不是使用f:setPropertyActionListener属性的属性。
请给我建议合适的解决方案
谢谢。因此,您不想在单击按钮时提交页面,但保留onclick事件?是的,佩利森,您理解的没错。您是否可以使用widVar\u menuItem.unselectAllRows的代码更新您的帖子?或者menuItem是什么?你好Hatem我已经用widVar_menuItem更新了代码
<p:dataTable id="dataTbl_menuItem_id" rows="5"
paginator="true" paginatorPosition="top"
widgetVar="widVar_menuItem" editable="true" editMode="cell"
value="#{addMenuItemMB.mnuItmSpecDtlListModel}"
var="mnuItmSpecDtl" rowKey="#{mnuItmSpecDtl.id}"
selection="#{addMenuItemMB.selectedLabels}">
<f:facet name="header">
<p:outputLabel value="Specification Label" />
</f:facet>
<p:column selectionMode="multiple"
style="width:2%; display:none;" />
<p:ajax event="toggleSelect"
listener="#{addMenuItemMB.onToggleSelect}" />
<p:ajax event="cellEdit"
listener="#{addMenuItemMB.onCellEdit}" />
<p:column headerText="Label" style="width:31%">
<h:outputText value="#{mnuItmSpecDtl.labelName}" />
</p:column>
<p:column headerText="Price" style="width:25%">
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{mnuItmSpecDtl.price}" />
</f:facet>
<f:facet name="input">
<p:inputText value="#{mnuItmSpecDtl.price}"
style="width:50px" />
</f:facet>
</p:cellEditor>
</p:column>
</p:dataTable>