日期:2014-05-19  浏览次数:20931 次

请教高手关于window.location问题
我在一个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> ");
}

------解决方案--------------------
在page_load 里加!page.postback
------解决方案--------------------
page.postback
这个你也不清楚就可以写出上面的代码来? 我汗
------解决方案--------------------
if(!PostBack)
{
//刷新页面不执行的代码
}
------解决方案--------------------
也就是说
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 ';脚本。
所以出现你说的现象。
------解决方案--------------------
将下面这个加入onclick中就可以了
button1.Attribute.Add( "onclick ", "leave(); ");
这个是javascript方法
function leave()
{
if(confirm( "do you want to leave? ") == true)
{
document.location = "../login.aspx ";
}
}