【问题标题】:use onclick with action in h:commandbutton在 h:commandbutton 中使用 onclick 和操作
【发布时间】:2014-12-14 18:14:39
【问题描述】:

我想选择一个用户并在弹出页面中编辑它。

   <h:form>
        <h:selectOneMenu id="friendselected" value="#{userBean.selecteduser}">
            <f:selectItems value="#{userBean.users}" />
        </h:selectOneMenu>
        <h:commandButton value="Edit User" action="#{userBean.edituser()}" onclick="#{userBean.JSPopup()}" />
    </h:form>

弹出代码

public String JSPopup() {
    return "javascript:void window.open(' UserEdit.xhtml ',' name ','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=1,left=0,top=0');return false;";
}

首先我将选择用户并将其 id 设置为 selecteduser。在弹出页面后,我看到它的信息并进行编辑。

public void edituser()
{
    initializeJdbc();

    String aSQL="select * from users where UserID="+selecteduser;
    Statement st = null;
    ResultSet rs = null;

    try {
        st = (Statement) connect.createStatement();
        rs = st.executeQuery(aSQL);

        if(rs.next()) {
            fullname=rs.getString("FullName");
            username=rs.getString("UserName");
            password=rs.getString("Password");
            gender=rs.getString("Gender").charAt(0);
            BirthDate=rs.getString("BirthDate");
            Tel=rs.getString("Tel");
            Email=rs.getString("Email");
            Address=rs.getString("Address");
        }

    } catch (Exception ex) {

    }
}

【问题讨论】:

  • 我没有看到任何问题...
  • 按钮不起作用。只有 onclick 在 commandButton 中工作,但不能在操作中工作。我如何才能同时使用 onclick 和 action?

标签: javascript jsf jsf-2 commandbutton


【解决方案1】:

userBean.JSPopup() 中的 return false; 表示您不应启动默认事件,因此永远不会调用您的操作。删除它应该没问题。

另一个提示,暂时不会给你带来问题,但值得注意。 onclick 是一个值属性,因此当您在其中放置方法表达式时,它不会调用方法 bean onclick,而是会在页面呈现时立即调用它(只需在您的 JSPopup 中设置一个调试方法,看看这个)。如果我是你,我会用 js 代码替换方法表达式,例如

onclick="javascript:void window.open(' UserEdit.xhtml ',' name ','width=700,height=500,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=1,left=0,top=0');"

或创建一个函数并从 onclick 调用它。目前您没有遇到任何问题,因为该方法仅返回 js 代码,但将来如果您在该方法中添加额外的逻辑,您可能会得到意想不到的结果。

【讨论】:

    猜你喜欢
    • 2012-07-06
    • 2016-03-08
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 2013-06-26
    • 2013-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多