使用Page.ClientScript从呼叫中获取响应

时间:2012-04-16 01:22:06

标签: c# asp.net

根据我的应用程序中的某些值,我需要显示确认框,单击“确定”和“取消”,如果单击“确定”,则应继续并导航到另一个页面,否则如果单击取消,则应保持相同页。

我遇到的问题是弹出窗口没有显示,除非我按如下方式添加return语句

  if (true)
        {
         Page.ClientScript.RegisterStartupScript(this.GetType(), 
        "ConfirmBox", "confirm('The numbers selected are not in the directory,"
        + sb.ToString()+
        " you wish to continue?');", true);
                        return;
         }
    Response.Redirect("~/homepage.aspx");

正如你所看到的那样,这将无法工作,因为它永远不会因为返回而进入重定向,但即使条件为真也没有返回,它会跳过弹出窗口。我怎么能这样做?

3 个答案:

答案 0 :(得分:1)

  

我遇到的问题是弹出窗口没有显示,除非我添加   return语句如下

Page Life Cycle执行完所有事件后,JavaScript code将被执行。所以,返回在这里没有任何意义。


纠正措施

将代码(条件和Redirect移动到另一个页面)到JavaScript函数。在RegisterStartupScript

中调用该函数

答案 1 :(得分:1)

我已尝试过您的代码,操作与您相同。 我的解决方案随你提供:

<script type="text/javascript">
function Redirect()
{
location.href = "~/homepage.aspx";
}
</script>
<script runat="server">
void yourFunc()
{
if (true)
        {
         Page.ClientScript.RegisterStartupScript(this.GetType(), 
        "ConfirmBox", "if(confirm('The numbers selected are not in the directory,"
        + sb.ToString()+
        " you wish to continue?') == true){Redirect();};", true);
         }
}
</script>

希望它可以帮到你。

答案 2 :(得分:0)

这可能是你的灵魂。这是根据来自确认框的用户输入限制导航的示例。

Check here