日期:2014-05-16  浏览次数:20332 次

一个我摸不到头脑的脚本问题,请大家帮我看看
一个页面,一个表单域,四个控件,一个脚本分别如下:

脚本(很简单很简单):
<script   language= "javascript ">
function   SetValue(){
if(confirm( "是否需要覆盖相同的数据? ")){
document.myform.TestTxt.value= "repeat ";
}
else
{
document.myform.TestTxt.value= "unrepeat ";
}
}
</script>
--------------------------
下面是页面按钮的click事件
private   void   CheckBtn_Click(object   sender,   System.EventArgs   e){
if(this.TextBox1.Text== "condition "){
if(!this.IsClientScriptBlockRegistered( "setvalues ")){
Page.RegisterClientScriptBlock( "setvalues ", " <script   language=JavaScript> SetValue(); </script> ");
}
if(this.TestTxt.Text== "repeat ")
{
this.Label1.Text= "点了确定 ";
this.TestTxt.Text= " ";
}
else   if(this.TestTxt.Text== "unrepeat ")
{
this.Label1.Text= "点了取消 ";
this.TestTxt.Text= " ";
}
}
else
{
this.Label1.Text= "无条件 ";
}
}
--------------------------

下面是提问时间,为什么脚本里的confirm()对话框会在上述代码都结束之后才会出来?
有没有什么办法在运行到发送脚本语句
Page.RegisterClientScriptBlock( "setvalues ", " <script   language=JavaScript> SetValue(); </script> ");
时就弹出对话框呢?


顺带一提,这个东西解决了,程序运行中途根据用户选择弹出对话框的问题就解决了...
还请大家不吝赐教

------解决方案--------------------
CheckBtn_Click(object sender, System.EventArgs e)发生在服务器端,而SetValue()在客户端不可能交替执行.要实现你所想要的功能,要么把CheckBtn_Click放到客户端,要么用ajaxpro 把CheckBtn_Click做成可供客户端调用的函数,然后放在SetValue()中调用