none
使用RegisterStartupScript弹出窗口时,能否阻止CS继续往下执行? RRS feed

  • 问题

  • 我需要用 RegisterStartupScript 弹出一个窗口给用户确认某些信息,之后再根据窗口传回的信息判断下面要进哪页,我把 ScriptManager.RegisterStartupScript 放在了 Response.Redirect 判断的上面,结果还没来得及弹出窗口就已经转跳了,能不能做到在 弹窗结束之前停止CS的运作?
    2010年2月2日 4:03

答案

  • 你好!

    不能,换种思路。将跳转写到 js 中。如:

    <%@ Page Language="C#" AutoEventWireup="true"%>
    <script runat="server">
        protected void btnGo_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "go", "GoConfirm();", true);
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>javascript 确认跳转</title>
        <script>
        function GoConfirm()
        {
            if (confirm("您确定要跳转吗"))
                 window.document.location.href = "http://social.microsoft.com/Forums/zh-CN/295/threads";
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:Button ID="btnGo" runat="server" onclick="btnGo_Click" Text="Go" />
        </form>
    </body>
    </html>
    


    知识改变命运,奋斗成就人生!
    • 已标记为答案 scate233 2010年2月4日 8:09
    2010年2月2日 4:30
    版主

全部回复

  • 你好!

    不能,换种思路。将跳转写到 js 中。如:

    <%@ Page Language="C#" AutoEventWireup="true"%>
    <script runat="server">
        protected void btnGo_Click(object sender, EventArgs e)
        {
            ScriptManager.RegisterStartupScript(this, this.GetType(), "go", "GoConfirm();", true);
        }
    </script>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title>javascript 确认跳转</title>
        <script>
        function GoConfirm()
        {
            if (confirm("您确定要跳转吗"))
                 window.document.location.href = "http://social.microsoft.com/Forums/zh-CN/295/threads";
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:Button ID="btnGo" runat="server" onclick="btnGo_Click" Text="Go" />
        </form>
    </body>
    </html>
    


    知识改变命运,奋斗成就人生!
    • 已标记为答案 scate233 2010年2月4日 8:09
    2010年2月2日 4:30
    版主
  • 杯具!我的窗口是 str = window.showModalDialog 这样开的,也就是说要直接在这个js里做判断和转跳了,同一个项目下的页在js里有没有简单的转跳?那个看起来很长

    2010年2月2日 8:27