一个我摸不到头脑的脚本问题,请大家帮我看看
一个页面,一个表单域,四个控件,一个脚本分别如下:
脚本(很简单很简单):
<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()中调用