【问题标题】:In a Richfaces Datatable with clickable rows, I want one column to ignore the onClickEvent在具有可点击行的 Richfaces 数据表中,我希望一列忽略 onClickEvent
【发布时间】:2018-04-24 14:54:41
【问题描述】:

在基于 Seam 2.2.1、JSF 1.2、Richfaces 3.3.3 的应用程序中,我有一个带有可点击行的数据表。 在最后一栏中,我有一个图标(垃圾箱)。单击此处应执行不同的方法(删除)。标准的onRowClick 事件不应适用。

有什么简单的方法可以做到这一点吗?

<rich:panel headerClass="panelHeader" styleClass="panel">
    <f:facet name="header">Header</f:facet>
    <rich:dataTable id="myTable" value="#{myModel}" var="k">

        <a4j:support event="onRowClick" action="#{myAction.selectItem(k, facesContext.viewRoot.viewId)}"
                            reRender="myTable"/>

            <rich:column>
                <f:facet name="header">
                        <h:outputText value="Normal Column - should be clickable"/>
                </f:facet>
                <h:outputText value="#{k.name}"/>
            </rich:column>

            <rich:column >
                <f:facet name="header">
                    <h:outputText value="Only Click on Icon should react to Mouseclick"/>
                </f:facet>
                <s:graphicImage value="/img/bin_closed.gif">
                    <a4j:support event="onclick"
                                 action="#{myAction.deleteItem(k)}"
                                 reRender="myTable"
                                 ajaxSingle="true" limitToList="true"
                                 onsubmit="if(!confirm('Really?')) { return false; }" />/>
                </s:graphicImage>
            </rich:column>

    </rich:dataTable>

</rich:panel>

【问题讨论】:

    标签: datatable richfaces ajax4jsf


    【解决方案1】:

    我找到了解决问题的方法。对于包含图标的列,我将图标放入另一个 &lt;a4j:outputPanel 元素中,如下所示:`

    现在,点击图标时只执行action方法。

    这里是完整的解决方案:

    <rich:panel headerClass="panelHeader" styleClass="panel">
        <f:facet name="header">Header</f:facet>
        <rich:dataTable id="myTable" value="#{myModel}" var="k">
    
            <a4j:support event="onRowClick" action="#{myAction.selectItem(k, facesContext.viewRoot.viewId)}"
                                reRender="myTable"/>
    
                <rich:column>
                    <f:facet name="header">
                            <h:outputText value="Normal Column - should be clickable"/>
                    </f:facet>
                    <h:outputText value="#{k.name}"/>
                </rich:column>
    
                <rich:column >
                    <f:facet name="header">
                        <h:outputText value="Only Click on Icon should react to Mouseclick"/>
                    </f:facet>
                    <a4j:outputPanel onclick="event.stopPropagation()">
                        <s:graphicImage value="/img/bin_closed.gif">
                            <a4j:support event="onclick"
                                         action="#{myAction.deleteItem(k)}"
                                         ajaxSingle="true" limitToList="true"
                                         onsubmit="if(!confirm('Really?')) { return false; }" />/>
                        </s:graphicImage>
                    </a4j:outputPanel>
                </rich:column>
    
        </rich:dataTable>
    
    </rich:panel>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 2014-12-12
      • 2020-12-22
      • 1970-01-01
      • 2023-03-24
      相关资源
      最近更新 更多