<p:datatable>的onExpandStart属性不起作用</p:datatable>

时间:2013-07-19 09:29:11

标签: java jsf primefaces xhtml datatable

在我的应用程序中,我想在展开<p:dataTable>行之前执行客户端方法,因此我使用onExpandStart="alert('Helo');"。但这也不适合我。

.xhtml代码段:

<p:dataTable value="#{ExampleDataModel}" lazy="true" paginator="true" onExpandStart="alert('Helo');">
    <p:column id="rowToggle" styleClass="rowtoggle">
        <p:rowToggler />
    </p:column>
    <p:rowExpansion>
          ..........
    </p:rowExpansion>
</p:dataTable>

任何人都可以告诉我做错了吗?我正在使用PF 3.4,Mojara(2)。感谢。

更新-1:   managedBean的代码片段:

@ManagedBean(name = "columnController")
@ViewScoped
public class ColumnController implements Serializable {
private List<ColumnDTO> userNames;


public List<ColumnDTO> getUserNames() {
    List<ColumnDTO> columns = new ArrayList<ColumnDTO>();
    columns.add(new ColumnDTO(Integer.valueOf(1), "Diganta"));
    columns.add(new ColumnDTO(Integer.valueOf(2), "Jayanta"));
    columns.add(new ColumnDTO(Integer.valueOf(3), "Proloy"));

    return columns;
}
public void setUserNames(List<ColumnDTO> userNames) {
    this.userNames = userNames;
}
}

ColumnDTO.java:

public class ColumnDTO implements Serializable {

private static final long serialVersionUID = 4828438441215128064L;

private Integer columnId;
private String columnName;

public ColumnDTO(Integer index, String columnName) {
    this.columnId = index;
    this.columnName = columnName;
}
    //...........getter setter
   }

.xhtml代码

<h:head></h:head> 
<body> 
<h:form>
<p:dataTable value="#{columnController.userNames}" var="name" onExpandStart="alert('Hello')">
    <p:column>
        <p:rowToggler/>
    </p:column>
    <p:column>
        <h:outputText value="#{name.columnName}" />
    </p:column>
    <p:rowExpansion>
        <h:outputText value="#{name.columnId}" />
    </p:rowExpansion>
</p:dataTable>
</h:form>
</body> 
</html>

1 个答案:

答案 0 :(得分:0)

尝试使用<p:ajax event="rowToggle" onstart="alert('Helo');"/>代替onExpandStart