如果引发hA的动作是一个asp:button,那么肯定会引发postback,可以考虑使用input type="button" ,这样不会引发回发

解决方案 »

  1.   

    方法1:直接在hD中触发postback
    方法2:
    定义一个全局标记变量complete=false
    在hD中改变标记变量的值complete=true
    在hA中出发settimeout来监控complete的变化来触发postback不知是否用的上,看看是否还有其他办法.
      

  2.   

    检查asp.net控件的autopostback是否设置为true了
      

  3.   

    其实你完全可以考虑在postback后的服务器代码里面去处理你说的事件啊
      

  4.   

    我说明两点
    1、textboxA引发的postback是我的代码主动调用的,不存在是服务器端控件本身引起的postkack
    2、我说的那些事情必须要客户端做,如果能在服务器端做,当然好了。可惜业务上不行啊。
      

  5.   

    myvicy的方法似乎可行,我也这样考虑过,唯一觉得不妥的地方就是使用settimeout似乎不妥吧?因为我不知道要延时多长时间。
      

  6.   

    myvicy的方法似乎可行,我也这样考虑过,唯一觉得不妥的地方就是使用settimeout似乎不妥吧?因为我不知道要延时多长时间。
      

  7.   


    我觉得也只有这个方法可行了,不过不是全局变量,而是建立对应的状态数组,哪个控件的事件执行完了就更改对应的状态,然后使用setTimeout来检查状态数组,看是否都已经完成,完成则postback给个大概的模型给你
    <html> 
        <head> 
    </head>
    <body>
    <form>
    </form>
     <script>
    setInterval(CKStatus,100);
    var Status=["textA:0","textB:0","textC:0"];
    function CKStatus()
    {
      for(var i=0;i<Status.length;i++)
      {
         if(Status[i].split(':')[1]=="0")
            return;//未完成则直接退出
      }
     document.forms[0].submit();//提交第一个表单
    }
    //下面测试用的,更改状态,3秒左右提交表单
    //更改状态在执行完你的事件后调用SetStatus函数,参数为你的状态标志
    setTimeout("SetStatus('textA')",1000);
    setTimeout("SetStatus('textB')",2000);
    setTimeout("SetStatus('textC')",3000);
    function SetStatus(ID)
    {
      for(var i=0;i<Status.length;i++)
      {
         if(Status[i].split(':')[0]==ID)
         {
            Status[i]=ID+":1";//=====
            return;
         }
      }
    }
    </script>
    </body>
    </html>
      

  8.   

    根据楼主的需求好象不用树状模型的.
    <script>
    var complete = false;
    function ha(){
    //执行代码
    t1=setInterval(checkStatus,100);
    }
    function hb(){
    //执行代码
    }
    function hc(){
    //执行代码
    }
    function hd(){
      complete = true;
    }
    function checkStatus(){
      if(complete){
         clearInterval(t1);//清除
         ;//do submit
       }
    }
    </script>
      

  9.   

    控件怎么才能知道本身的客户端事件处理函数执行完了呢?
    ---你的单个事件执行完了设置和这个事件对应的状态为完成检查是否都完成由setInterval执行的函数来检查状态数组,都完成时则提交表单,有未完成的则return退出函数体,防止表单提交