我试图通过按Enter键在Primefaces TreeTable上接受editRow事件。但是在这样做时,<p:commandButton/>
捕获了事件。
我尝试使用<h:outputScript/>
jQuery:
$('tmt-library-tree').keypress(function(event) {
if(event.which == '13') {
event.preventDefault();
}
});
但是它会影响整个TreeTable。我还尝试了以下形式的选择器:
$("#screens\\:form\\:libraryGroupTreeTable\\:addGlobal").keypress(function(event) {
if(event.which == '13') {
event.preventDefault();
}
});
从Chrome开发者工具的“检查”窗口中获取并确保存在。
这是Primefaces TreeTable
<p:treeTable id="libraryGroupTreeTable" styleClass="library-tree"
var="dummy" nodeVar="hltsOrHltsfOrLg" value="#{libraryTree}" emptyMessage=""
selectionMode="single" editable="#{editable}" scrollable="true">
并添加了<p:ajax>
来处理rowEdit
<p:ajax event="rowEdit" listener="#{libraryTree.onRowEdit}" onstart="vres.onAjax(cfg, '#{libraryTree.gid}');" update="libraryGroupTreeTable"/>
最后,这是我的<p:outputPanel>
<p:outputPanel id="namePanel" style="display: inline-flex;">
<span class="tree-node-icons #{hltsOrHltsfOrLg.css}"/>
<div style="margin-top: 3px;">
<p:cellEditor>
<f:facet name="input"><p:inputText value="#{hltsOrHltsfOrLg.name}"/></f:facet>
<f:facet name="output"><h:outputText value="#{hltsOrHltsfOrLg.name}"/></f:facet>
</p:cellEditor>
</div>
</p:outputPanel>
我需要ENTER键才能执行
<p: ajax/>
标签在 编辑单元格的时刻。
谢谢!