window.open无法在asp.net中首次单击按钮

时间:2013-06-25 04:09:51

标签: asp.net c#-4.0 button

朋友您好我在新窗口中编写了打开aspx页面的代码。但是,当我第一次点击页面按钮时,它没有打开窗口,但之后每次点击时它都会打开。我的意思是说在asp.net中第一次点击按钮时窗口没有打开这里是我的代码

 protected void Button1_Click(object sender, EventArgs e)
    {
        Button1.OnClientClick =
  "window.open('ezychat/frmchathome.aspx?FromUserId=" +Session["User_userid"] +
                     "&Username=" + Session["User_username"] +
                    "&IsReply=yes','','width=400,height=200,scrollbars=no,toolbars=no,titlebar=no,menubar=no'); isLostFocus = 'true';";
    }

请告诉我它为什么会发生

3 个答案:

答案 0 :(得分:0)

因为首次点击它会分配OnClientClick Button1事件并且不会将您重定向到windows.open事件,因为当您第一次点击此按钮时声明尚未执行。您有在OnClientClick事件中声明此pageLoad,以便在您按此Button1

时第一次重定向您

答案 1 :(得分:0)

嗯..     这将按照你的要求工作......     删除你的onclick事件......

protected void Page_Load(object sender, EventArgs e)
    {
        Button1.OnClientClick =
        "window.open('ezychat/frmchathome.aspx?FromUserId=" + Session["User_userid"] +
                           "&Username=" + Session["User_username"] +
                          "&IsReply=yes','','width=400,height=200,scrollbars=no,toolbars=no,titlebar=no,menubar=no'); isLostFocus = 'true';";

    }

答案 2 :(得分:0)

您需要添加此代码

Button1.OnClientClick =
  "window.open('ezychat/frmchathome.aspx?FromUserId=" +Session["User_userid"] +
                     "&Username=" + Session["User_username"] +
                    "&IsReply=yes','','width=400,height=200,scrollbars=no,toolbars=no,titlebar=no,menubar=no'); isLostFocus = 'true';";

pageload方法而不是Button click事件中。

正在发生的事情是,在第一次点击时,您将该行OnClientClick设置为该按钮,因此下次点击该按钮时会有效。