for (int i = 0; i < uba_struc.BuildId.Length; i++)
            {
                ClientScriptManager csm = Page.ClientScript;
                csm.RegisterStartupScript(this.GetType(), "JS", "<script>document.getElementById('" + div_build[i].ClientID + "').className='" + div_build[i].ClientID + "';</script>");
                
}
div_build是HtmlContainerControl数组,
这样写为什么只执行了第一次啊,跟踪又是都跑过了的,没有报错,高人在哪里啊,请不要说用System.Threading.Thread.Sleep,因为那样页面出现太慢,我也没试过有没有用,请高人指点下,在线等 

解决方案 »

  1.   

      csm.RegisterStartupScript(this.GetType(), "JS", " <script>document.getElementById('" + div_build[i].ClientID + "').className='" + div_build[i].ClientID + "'; </script>"); 这样只能响应一次 要是想这样些就全写在RegisterStartupScript里面csm.RegisterStartupScript(this.GetType(), "JS", " <script>document.getElementById('" + div_build[0].ClientID + "').className='" + div_build[0].ClientID + "'; document.getElementById('" + div_build[0].ClientID + "').className='" + div_build[0].ClientID + "'document.getElementById('" + div_build[0].ClientID + "').className='" + div_build[0].ClientID + "'一直到写完</script>"); 
      

  2.   


    for (int i = 0; i < uba_struc.BuildId.Length; i++)
                {
                    ClientScriptManager csm = Page.ClientScript;
                    csm.RegisterStartupScript(this.GetType(), "JS"+i.ToString(), " <script>document.getElementById('" + div_build[i].ClientID + "').className='" + div_build[i].ClientID + "'; </script>");
                   
    } 语句块的名字要保持唯一。"JS"+i.ToString()
    如果重复了,就只有一个了。
      

  3.   

    for (int i = 0; i < uba_struc.BuildId.Length; i++) 
                { 
                    ClientScriptManager csm = Page.ClientScript; 
                    csm.RegisterStartupScript(this.GetType(), "JS"+i.ToString(), " <script>document.getElementById('" + div_build[i].ClientID + "').className='" + div_build[i].ClientID + "'; </script>"); 
                    
    } 你那主键名一样是替代。
      

  4.   

    其实原因只能说是一个语法错误: csm.RegisterStartupScript... 放的地方不对你应该把这个方法放在循环的外面 。只所以会只执行一次是因为运行了这句话就跳出循环了。。
      

  5.   

    ClientScriptManager csm = Page.ClientScript;
    可以放在循环外面
      

  6.   


    谢谢大家,yfqvip和 yangpeiyu 的回答是正确的!!!问题已经解决了这个不重要,那是我后来放进去的,我的ClientScriptManager csm = Page.ClientScript; 是全局引用的,我尝试解决时才放进去的