首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CommandButton in dataTable

CommandButton in dataTable
EN

Stack Overflow用户
提问于 2015-05-04 19:41:52
回答 1查看 833关注 0票数 0

我有一个datatable来显示一些关于用户的信息,最后一列包含一个删除行的命令按钮。问题是,当我单击任意按钮时,所有行都会被删除,即操作被多次调用。我的Xhtml文件:

代码语言:javascript
复制
<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>

我的豆子

代码语言:javascript
复制
  @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"#";   
}

}

当我单击任意行中的命令按钮时,所有用户登录都会打印在控制台中。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-04 20:51:11

您可以使用EL来调用onclick中的backingbean中的方法,而应该将其放在action中。Onclick只是用于javascript。

但这仍然不能解释你所描述的行为(但它可能已经打印了日志行,当你点击按钮时,你只是“认为”它们是打印出来的)。我希望在呈现页面时所有的删除操作都会发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30038620

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档