【问题标题】:Icefaces: selecting a row in a table using a right-clickIcefaces:使用右键单击选择表格中的一行
【发布时间】:2013-09-26 17:02:47
【问题描述】:

我正在使用基于 IceFaces 构建的应用程序。该应用程序的一部分允许用户选择一个表单,创建一个副本,然后编辑并以不同的名称保存这个副本。这些副本有两种变体:一种是相同的副本,一种是经过编辑的部分信息。

要选择一个表单,用户有一个搜索页面,该页面返回一个可排序的搜索结果表。在当前系统中,每一行的最后一列有两个按钮,一个用于重复的每个变体。当其中任何一个被单击时,它会触发两个侦听器:一个 RowSelectionListener 使用所选行的 ID 更新模型,第二个侦听器取决于使用此 ID 检索所选表单、创建副本并重定向用户到相关的编辑页面。

我们想用一个上下文菜单替换这两个按钮,用户可以在其中右键单击一行并选择所需的选项。我们已经使用 contextMenu 组件 (http://icefaces-showcase.icesoft.org/showcase.jsf?grp=aceMenu&exp=contextMenuBean) 实现了这个上下文菜单,它工作正常,但有一个问题:右键单击不会触发 rowSelectionListener。这意味着用户需要先左键单击要编辑的表条目,然后右键单击以查看菜单。

这当然不是一种非常直观的工作方式,所以我想知道是否有一种方法可以将行选择绑定到鼠标右键,或者将上下文菜单绑定到鼠标左键 - 都可以,只要用户只需点击一次。

【问题讨论】:

    标签: jsf contextmenu icefaces


    【解决方案1】:

    您不需要 rowSelectionListener。当与属性contextValuemenuPopup 一起使用时,只需在ice:panelGroup 生成的行上使用oncontextmenu。 contextValue 可用于唯一标识一行。

    <ice:column>
    <f:facet name="header">
            <h:outputText value="Col header" />
    </f:facet>
        <ice:panelGroup contextValue="#{myVar.rowId}" menuPopup="menupopupId">
            <ice:outputText value="#{myVar.property}" />
        </ice:panelGroup>
    </ice:column>
    ....
    <ui:include src="menuPop.xhtml"/>
    

    menuPop.xhtml

    <ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ice="http://www.icesoft.com/icefaces/component"
    xmlns:ui="http://java.sun.com/jsf/facelets">
    <ice:panelGroup styleClass="icePnlMenuPopupGrp">
        <ice:menuPopup id="menupopupId">
            <ice:menuItem id="myItem" value="My Item"
                actionListener="#{controller.doAction}">
            </ice:menuItem>
            .....
        </ice:menuPopup>
    </ice:panelGroup>
    </ui:composition>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-09-07
      • 2013-05-21
      • 2013-08-22
      • 1970-01-01
      • 2021-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多