数据表中的命令按钮
CommandButton in dataTable
我有一个数据表来显示一些关于用户的信息,最后一列包含一个命令按钮来删除该行。
问题是当我单击任何按钮时,所有行都被删除,即该操作被多次调用。
我的 Xhtml 文件:
<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"#";
}
}
当我单击任何行中的命令按钮时,所有用户登录都会打印在控制台中。
您使用 EL 在 onclick
中的 backingbean 中调用方法,而您应该将它放在 action
中。 onclick 仅适用于 javascript.
但是这仍然不能解释您描述的行为(但可能是它们的日志行已经打印出来,而您只是 'think' 当您单击按钮时打印它们。)我希望所有呈现页面时发生的删除操作。
我有一个数据表来显示一些关于用户的信息,最后一列包含一个命令按钮来删除该行。 问题是当我单击任何按钮时,所有行都被删除,即该操作被多次调用。 我的 Xhtml 文件:
<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"#";
}
}
当我单击任何行中的命令按钮时,所有用户登录都会打印在控制台中。
您使用 EL 在 onclick
中的 backingbean 中调用方法,而您应该将它放在 action
中。 onclick 仅适用于 javascript.
但是这仍然不能解释您描述的行为(但可能是它们的日志行已经打印出来,而您只是 'think' 当您单击按钮时打印它们。)我希望所有呈现页面时发生的删除操作。