如何使用jsf 2.2获取PrimeFaces数据表中所选行的行索引

时间:2015-02-23 05:08:52

标签: jsf primefaces jsf-2.2

例如我正在使用此数据表

<h:form>
        <p:dataTable var="item" value="#{kilowatManager.show}">
            <p:column headerText="Id">
                <h:outputText value="#{kilowatManager.kilowat.id}" />
            </p:column>
            <p:column headerText="Name">
                <h:outputText value="#{kilowatManager.kilowat.name}" />
            </p:column>
            <p:column headerText="kWH">
                <h:outputText value="#{kilowatManager.kilowat.kwh}" />
            </p:column>
            <p:column headerText="kWD">
                <p:inputText value="#{kilowatManager.kilowat.kwd}"/>
            </p:column>
        </p:dataTable>
    </h:form>

如何在输入文本

中按ENTER键后获取所选行的值

1 个答案:

答案 0 :(得分:0)

您可以在选择行后使用按钮。您可以将按钮放在datable中。例如,您可以将其包含在f:facet代码

<f:facet name="footer">
<p:commandButton id="createButton" icon="ui-icon-plus"   value="Nouveau"/>
<p:commandButton id="editButton"   icon="ui-icon-pencil" type="submit" value="Modifier"  action="#{Controller.Method()}">

                    

你将按钮绑在一个支持bean上,如下所示:

@ManagedBean(name = "controller")
@RequestScoped
public class Controller implements Serializable {

    public Controller() {
    }

    public void method(){

        DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("form:datalist");
        MyDataTableObject myObject = (MyDataTableObject) dataTable.getSelection();            
    } 
}

其中表单 datalist h:formp:dataTable标记的ID

我遇到了这个问题,我使用以下链接找到了我的解决方案 http://forum.primefaces.org/viewtopic.php?f=3&t=29086