我在一个button的click事件中,写下如下代码,目的是询问用户是否投票,如果投,则向数据库插入记录;如果不投,则跳转到另一个页面。 结果是:我在运行时点了取消按钮后页面是跳转了,但是下面的语句也执行了。在点了取消的情况下,怎么才能让程序不执行下面的语句呢??DataTable dtVote = sv.O_Sel("BE",0,0,strUser);
string strMyvote = "您已投了"+dtUser.Rows[0][0]+"票。";
Response.Write("<script>if(!confirm('"+strMyvote+"您确定本次投票吗?')){window.location='saying.aspx';}</script>");
if (sv.O_Upd(int.Parse(Request["imgNo"]),strUser) > 0)//投票
{
    Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
}

解决方案 »

  1.   

    在page_load 里加!page.postback
      

  2.   

    page.postback
    这个你也不清楚就可以写出上面的代码来?  我汗
      

  3.   

    不能在page_load里加吧。页面是一个登陆页面,用户输入用户名后,点“登陆”按钮,程序先去数据库检索该用户的投票情况,然后根据传过来的参数“imgNo”询问用户是否进行本次投票。
      

  4.   

    if(!PostBack)
    {
        //刷新页面不执行的代码
    }
      

  5.   

    DataTable dtVote = sv.O_Sel("BE",0,0,strUser);
    string strMyvote = "您已投了"+dtUser.Rows[0][0]+"票。";
    Response.Write("<script>if(!confirm('"+strMyvote+"您确定本次投票吗?'))
    return;
    window.location='saying.aspx';</script>");
    if (sv.O_Upd(int.Parse(Request["imgNo"]),strUser) > 0)//投票
    {
        Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
    }
    这样试试,
      

  6.   

    to freeboy827() ( ) 信誉:100 谢谢你!你的方法我试了,不行啊!有脚本提示:return语句在函数之外
      

  7.   

    也就是说
    Response.Write("<script>if(!confirm('"+strMyvote+"您确定本次投票吗?')){window.location='saying.aspx';}</script>");
    执行完后,并没有在页面执行脚本,而是接着执行
    if (sv.O_Upd(int.Parse(Request["imgNo"]),strUser) > 0)//投票
    {
        Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
    }
    然后按钮时间执行完,页面才出if(!confirm('"+strMyvote+"您确定本次投票吗?')){window.location='saying.aspx';脚本。
    所以出现你说的现象。
      

  8.   

    将下面这个加入onclick中就可以了
    button1.Attribute.Add("onclick","leave();");
    这个是javascript方法
    function leave()
    {
    if(confirm("do you want to leave?") == true)
    {
    document.location = "../login.aspx";
    }
    }
      

  9.   

    to iiamanda_cn() ( ) 信誉:100 谢谢你!你这个方法我也知道。但是是有问题的,因为用户输入登陆信息后,需要点登陆按钮的,后台程序(登陆按钮的Click事件)检索数据库得到该用户的投票情况后才询问。所以不能用这种方法吧!