用atlas做了一个页面,需要在局部刷新后执行一段javascript,如错误提示、设置输入焦点等,请问如何实现?实在没分了,不好意思

解决方案 »

  1.   

    在你要刷新的部位设置一个LABLE  把要执行的脚本代码输出到LABEL.TEXT里
    就可以拉~注意 如果这个的位置常更新 而有的时候不想执行该代码 就要考虑一下怎么回避和控制
      

  2.   

    不用 LABLE用TD.INNEHTML也可以
      

  3.   

    把要执行的脚本代码输出到LABEL.TEXT里
    ————————————————————————————————————————
    这个比较奇怪,给一个标签的innerHTML变为脚本,并不会使得这个脚本执行。有实际确认过的代码示例吗?
      

  4.   

    倒死!!!怎么会没效果!!  注意我说的是 脚本代码~  不是函数名!   请确认这个哦
    因为这样作的访问位置是有问题的TDCC.InnerHtml = "<script type=\"text/javascript\"> document.getElementById(\"NewRssDiv\").style.visibility=\"hidden\";</script>";这里的 TDCC  是 HtmlTableCell   当然LABLE也可以
    对应的是 <TD></TD> 当然是RUNAT=SERVER的除非你的刷新顺序有问题 或者有什么东西影响了你不信的话 你单作一个PAGE 来实验
      

  5.   

    Q: 不信的话 你单作一个PAGE 来实验
    ——————————————————————————————————————————
    A: 我更加郁闷和疑惑了。atlas也好,其它Ajax也好,在刷新的时候page已经输出,并且是在客户端静态的,服务器端的page与客户端的page没有直接关系了。干脆我们来点直接的,你如何修改下面这个html来让td和label仅仅通过innerHTML来执行脚本呢?
    <html>
       <body>
       <table>
       <tr>
       <td id="xxx"></td>
       </tr>
       </table>
       <span id="yyy"></span>
       
       <script type="text/javascript">
       function test(x)
       {
         alert(x.innerHTML);
         x.innerHTML='????';
         alert(x.innerHTML);
       }
       </script>
       
       <span onclick="test(xxx)">[点我证明TD]</span><br />
       <span onclick="test(yyy)">[点我证明Label]</span><br />
       <span onclick="alert('TD内是'+xxx.innerHTML);alert('Label内是'+yyy.innerHTML);">[察看结果]</span>
       </body>
    </html>   
    另外,我特意测试过,你写的InnerHtml 根本不是dhtml属性,必须写成innerHTML。你写的代码确实是“局部刷新后执行一段javascript”的代码吗?你的PAGE 确实“局部刷新”的吗?
      

  6.   

    请原谅,我从来不用atlas,也仅仅看一些大致概念方面的东西,所以前边不愿回答这个问题。我们从原理上来说,如果你的客户端异步调用服务器端,就可以在那个自定义的回调函数中写eval语句来运行服务端返回的命令了。
      

  7.   

    我并不知道atlas中到底应该如何解决这个问题,但是也不想得到一个错误的对atlas的印象。
      

  8.   

    sp1234(没有心情,没有心情短语) 我所说的 TD或者 LABEL 是要放在被AJAX更新的区域内的
    比如一个PANEL 内   而这次动作 要更新这个PANEL区域
    假设这个结构,
    <table width="70%" >
                
                <tr>
                    <td><asp:Label ID="Label2" runat="server" Text="RSS种子地址"></asp:Label>
            <asp:TextBox ID="TextBox2" runat="server" BackColor="#FFFFC0" BorderColor="#FFFFC0"
                BorderStyle="None" Font-Size="8pt" ForeColor="Green" Height="16px" MaxLength="150" Width="156px">RSS</asp:TextBox>
                    </td>
                    <td>
                    </td>
                    <td id="TDCC" runat="server">
                        <asp:Label ID="Label5" runat="server" Text="Label"></asp:Label></td>
                </tr>
                <tr>
                 <td>
                  <asp:ImageButton ID="ImageButton3" runat="server" ImageUrl="~/Images/ok.png" OnClick="ImageButton3_Click" /></td>
                </tr>
            </table>我指定的是当ImageButton3发生回传的时候 更新 这个TABLE所在的PANEL 同时更新页面上的另外一个区域.
    而在ImageButton3_Click中结束前加上了这行代码
    TDCC.InnerHtml = "<script type=\"text/javascript\"> document.getElementById(\"NewRssDiv\").style.visibility=\"hidden\";</script>";也就是说 将这个TD内的HTML内容换成脚本,
    当浏览器更新这一区域的时候改脚本会自动被执行.对于你上边问我怎么修改你的代码,我没办法 我不知道你怎么使用的AJAX 或者怎么个意图