如何在Editable Datatable中的JSF中从<p:commandlink>调用<p:ajax>

时间:2017-05-11 11:18:17

标签: jsf primefaces jsf-2

我有以下代码

<p:ajax id="rowEditInit" event="rowEditInit"
   listener="#{assignIssueController.onEditInit}" />

<p:commandLink id="linkId" action="#{assignIssueController.initMethod}" >
    <p:rowEditor>
    </p:rowEditor>
</p:commandLink>

这是我的可编辑数据表的一部分有没有什么方法可以在调用commadlink后调用我的ajax事件“rowEditInit”?

以下是我的数据表

<h:form id="formId">
            <p:dataTable id="dTable" var="il"
                value="#{assignIssueController.issueList}" editable="true"
                style="margin-bottom:20px">
                <f:facet name="header">
           Assign Issues
                </f:facet>
                <p:ajax event="rowEdit"
                    listener="#{assignIssueController.onRowEdit}" />
                <p:ajax event="rowEditCancel"
                    listener="#{assignIssueController.onRowCancel}" />
                 <p:ajax id="rowEditInit" event="rowEditInit"
                    listener="#{assignIssueController.onEditInit}" />
                <p:column headerText="Issue Number">
                    <h:outputText value="#{il.issueNumber}" />
                </p:column>
                <p:column headerText="Issue Discribtion">
                    <h:outputText value="#{il.issueDescribtion}" />
                </p:column>
                <p:column headerText="Assign To">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{il.assignToUserId}" id="userId" />
                        </f:facet>
                        <f:facet name="input">
                            <p:autoComplete id="assignUserId" multiple="true"
                                value="#{assignIssueController.selectedUserList}"
                                completeMethod="#{assignIssueController.complete}" var="usr"
                                itemLabel="#{usr.userId}" itemValue="#{usr}"
                                converter="#{userConverter}">
                            </p:autoComplete>
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Updated By">
                    <h:outputText value="#{il.updatedByUserId}" />
                </p:column>
                <p:column headerText="Issue Type">
                    <h:outputText value="#{il.issueStatus}" />
                </p:column>
                <p:column style="display: none">
                    <f:facet name="output">
                        <h:outputText value="#{il.issueType}" />
                    </f:facet>
                </p:column>
                <p:column style="width:32px">
                <p:commandLink  id="linkId" action="#{assignIssueController.initMethod}">
                    <p:rowEditor>
                    </p:rowEditor>
                    </p:commandLink>
                </p:column>
            </p:dataTable>
        </h:form>

以下是ajax事件调用的方法

public void onEditInit(RowEditEvent event) {
        System.out.println(event.getObject());
        AssignIssueList obj = (AssignIssueList) event.getObject();
        issueName = obj.getIssueNumber();
        System.out.println(obj.getAssignToUserId().toString());
        selectedUserList = usersBo.getUserNameList(obj.getAssignToUserId().toString());
    }

    public void initMethod() {
        System.out.println("Hello world");
    }

0 个答案:

没有答案