解决方案 »

  1.   

    用的是这个插件:http://www.open-open.com/ajax/ajax20080329100537.htm
      

  2.   

    一般的执行顺序是先client端的javascript, 再执行server端的Event handler. 如果你想先执行Server端的代码,可以在后台修改class属性。
    前台:       <style >
            .Box {
                border: thin dashed #FF0000;
            }
            
            .Box1{
                border: thin dashed #00FF00;
            }
            
           </style>    
        <div id="TestDiv" runat="server" class="Box">
            <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />    </div>
    后台: protected void Button1_Click(object sender, EventArgs e)
            {
                TestDiv.Attributes["class"] = "Box1";
            }
      

  3.   

    可是我这个不用在后台修改class属性,是需要执行class的代码,如果在div里面加上了class那么就执行不了button里面的代码了!
      

  4.   

    我不太明白你的意思了。
    class是属性有不是代码怎么执行?
      

  5.   

    如果一个asp.net程序员不是非常通晓asp.net的回发时的状态机制,但是你又使用asp.net,那么你的ajax只能用一丁点。凡是回发时丢掉了状态的,例如你这种,你都得自认倒霉。如果你想成为一个富客户端程序员,看来是要忘掉asp.net的。
      

  6.   

    你会发现,所谓ajax富客户端程序,是根本不回发的。一个页面就是一个完整的应用程序,根本不频繁地回发而刷新html页面。而asp.net程序还是非常古老的“一遍遍刷新html页面”的机制。当然因为asp.net比较简单,所以一些非常简单的web网页应用程序还用这种机制。那么,你就应该学会并且注意维护控件的状态机制。保持这个测试一直有效:你可以从vs上的工具栏,往页面上随便拖入一个Button,点击产生后台回发程序(但是什么也不用写)。然后每当你开发网页时都随时点击这个button测试一下,如果你的class属性之类的,任何状态丢失了,甚至界面乱了,那么就别往下做程序了,赶紧搞懂asp.net的状态机制吧。否则,就抛开asp.net,真正去进行富客户端的开发。
      

  7.   

    可能对你来说其实很简单,就是使用 RegisterStartupScript(...)注册和执行相应的脚本。这就跟加载新的页面然后在pageload时显示浮动div时一样的。实际上对于asp.net程序员来说,应该使用UpdatePanel并且设置一个Panel(它的style设置为position:absolute)的Visible为true,看似弹出层。但是不管是哪一种写法,都是回发机制造成你的困惑。都是一大堆与使用jQuery EasyUI等工具进行开发的重点完全不同的开发方法。
      

  8.   

    用个label控件记录页面的状态,再在前端$(document).ready()方法中依据label控件的text属性,控制div的显示