作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有一个非常复杂的数据表。它应该能够编辑单行,选择多行,并为每一行显示上下文菜单。单行编辑工作正常,多选工作也很好,我唯一的问题是,每当我尝试在右键单击的行上打开 contextMenu 时,所选 tableItem 的值为 null。只有当我在行上单击显式(左键单击)然后右键单击以显示上下文菜单时,它才有效。这很不方便,我想右键单击contextMenu 以显示选定的itemValue。
我知道还有其他一些关于这个问题的帖子,但没有真正的解决方案或解决方法,所以我希望你能帮助我。
这是我的代码:
<p:contextMenu id="schadenTableContextMenu" for="todoSchadenTable"
style="width: 200px; ">
<p:submenu id="schadenTableSetAsReadSBM" label="Markieren als"
styleClass="my-menu">
<p:menuitem id="schadenTableSetAsReadSBMMI1" value="Gelesen"
style="width: 167px;" icon="ui-icon-mail-open" ajax="true"
partialSubmit="true" process="@this"
action="#{todoLeseHistController.setAlsGelesen()}" update=":mainForm" />
<p:menuitem id="schadenTableSetAsReadSBMMI2" value="Ungelesen"
style="width: 167px;" icon="ui-icon-mail-closed" ajax="true"
partialSubmit="true" process="@this"
action="#{todoLeseHistController.setAlsUngelesen()}"
update=":mainForm" />
</p:submenu>
<p:menuitem id="schadenTableContextMenuMI3"
style="width:190px !important; font-size:12px !important;"
value="In der Applikation öffnen" icon="ui-icon-pencil"
title="Öffnet den ToDo in der entsprechenden Applikation." ajax="true"
partialSubmit="true" process="@this"
action="#{openExternalLinkController.openTodoInExtUrl()}"
oncomplete="openExternal(xhr, status, args)" update=":msgGrowl" />
</p:contextMenu>
-------------------dataTable-----------------
<p:dataTable id="todoSchadenTable" widgetVar="todoSchadenTableW"
emptyMessage="Keine Schadenmeldungen gefunden." var="currentTableItem"
value="#{schadenTableController.dataModel}" paginator="true" rows="15"
filteredValue="#{schadenTableController.filteredTodos}"
filterEvent="keyup" filterDelay="500"
sortBy="#{currentTableItem.angelegtAm}" sortOrder="descending"
editable="true"
rendered="#{(loginBean.loggedIn and !mitViewController.leiterViewActiv and mitViewController.schadenTabActive) or (loginBean.loggedIn and leiterTreeController.todoSchadenTableAktiv)}"
selection="#{schadenTableController.selectedSchadenmeldungen}"
rowKey="#{currentTableItem.meldungId}"
style="min-width:1700px !important;">
<p:ajax event="rowEdit" global="false" partialSubmit="true"
listener="#{schadenTableController.saveErlVorgelBis(currentTableItem)}" />
<!-- <p:ajax event="rowSelect" global="false" listener="#{todoLeseHistController.aktuelleSchadenMeldung(currentTableItem)}" /> -->
<p:ajax event="contextMenu" global="false" partialSubmit="true"
listener="#{todoLeseHistController.testeMich()}" />
<p:ajax event="toggleSelect" update="zuordnenZuButton"
partialSubmit="true" process="@this" global="false" />
<p:ajax event="rowSelectCheckbox" update="@this" partialSubmit="true"
process="@this" global="false" listener="#{todoLeseHistController.testeMich()}"/>
<p:ajax event="rowUnselectCheckbox" update="@this" partialSubmit="true"
process="@this" global="false" />
<f:facet name="header">
<p:commandButton value="Zuordnen" id="zuordnenZuButton" ajax="true"
partialSubmit="true" process="@this"
label="Schandemeldung einem Mitarbeiter zuordnen"
oncomplete="zuordnenDialogW.show();"
disabled="#{not schadenTableController.hasSelectedSchadenmeldungen}"
action="#{zuordnenDialogController.prepareDataForTable()}"
style="float: left;" />
<pe:tooltip for="zuordnenZuButton"
value="Ausgwählte Schadenmeldungen einem Benutzer zuordnen"
myPosition="left center" atPosition="right center" showEffect="fadeIn"
hideEffect="fadeOut" showDelay="700" />
<h:outputText
value="#{schadenTableController.tableHeaderName} - #{leiterTreeController.getDataTableHeaderZusatz()}"
style="color:#cf0008; font-size: 22px; padding-top: 7px; " />
</f:facet>
...
最佳答案
当您调用 contextMenu 事件的监听器时,您是否将所选行分配给支持 bean 中的变量?
它应该是这样的:
<p:ajax event="contextMenu" listener="#{backingBean.contextMenuSelect}" />
public void contextMenuSelect(SelectEvent event) {
selectedRow = (EntityClassName) event.getObject();
}
关于ajax - 带有 contextMenu、multipleSelection、rowEdit 的数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15873942/
我正在使用jQuery Multiple Select文志新图书馆。 如果我尝试申请multipleSelect()将元素附加到 DOM 后立即将该元素添加到该元素,多重选择将显示为空白(没有任何选项
所以我有一个非常复杂的数据表。它应该能够编辑单行,选择多行,并为每一行显示上下文菜单。单行编辑工作正常,多选工作也很好,我唯一的问题是,每当我尝试在右键单击的行上打开 contextMenu 时,所选
我有一个看起来像这样的模型: class Event(models.Model): event_dates = ManyToManyField("EventDate") #... cl
我是一名优秀的程序员,十分优秀!