0
我有一個數據表來顯示有關用戶的一些信息,最後一列包含一個命令按鈕來刪除該行。 問題是當我點擊任何按鈕時,所有的行被刪除,這是行動被調用多次。 我的XHTML文件:CommandButton in dataTable
<h:form>
<p:dataTable var="user" value="#{admin.users}">
<p:column headerText="Login">
<h:outputText value="#{user.login}" />
</p:column>
<p:column headerText="Nom">
<h:outputText value="#{user.nom}" />
</p:column>
<p:column headerText="Prenom">
<h:outputText value="#{user.prenom}" />
</p:column>
<p:column headerText="Password">
<h:outputText value="#{user.password}" />
</p:column>
<p:column headerText="Operation">
<p:commandButton value="supprimer" onClick="#{admin.delete_user(user.login)}" ajax="false" />
</p:column>
</p:dataTable>
</h:form>
我的豆
@ManagedBean (name="admin")
@ViewScoped
public class Admin {
private ArrayList<User> users;
//getters & setters
public String delete_user(String login)
{
System.out.println(login);
UserDao ud=new UserDao();
try{
ud.Delete_Query(login);
}
catch(Exception e){System.out.println(e.getStackTrace());}
return"#";
}
}
當我點擊任何一行的命令按鈕,所有用戶登錄時打印在控制檯中。
您可以在'onclick'中使用EL,而應該將其放入'action'中。但是這個stil並沒有解釋你描述的行爲(但是可能是因爲他們的日誌行已經被打印出來了,而你只是'想'它們會在你點擊按鈕時被打印出來。)我希望所有的刪除操作都發生了當頁面呈現時 – Kukeltje
是的,你是對的,所有刪除操作發生在頁面呈現時。 –
所以你應該切換到行動。一個onclick只是爲了javascript。無論如何,添加評論作爲它應該的答案 – Kukeltje