ASP.NET AJAX 初学

今天看了一点ASP.NET AJAX,知道了如何用UpdatePanel,呵呵,下面是示例代码:

 

  
    
1 < table border = " 1 " width = " 800 " bgcolor = " #99FF99 " align = " center " >
2 < tr >
3 < td >
4 < asp:Label ID = " Label1 " runat = " server " Text = " User List: " >
                </
asp:Label >
5
6 </ td >
7 </ tr >
8 < tr >
9 < td >
10 < asp:UpdatePanel ID = " UpdatePanel1 " runat = " server "
                            UpdateMode
= " Conditional " >
11 < ContentTemplate >
12 < asp:Label ID = " lbUserList " runat = " server " Text = "" >
                   </
asp:Label >
13 </ ContentTemplate >
14 < Triggers >
15 < asp:AsyncPostBackTrigger ControlID = " Timer1 " />
16 </ Triggers >
17 </ asp:UpdatePanel >
18 < asp:Timer ID = " Timer1 " runat = " server " Interval = " 1000 "
                    OnTick
= " Timer1_Tick " >
19 </ asp:Timer >
20 </ td >
21 </ tr >
22 < tr >
23 < td >
24 < asp:Label ID = " Label3 " runat = " server " Text = " Chat Area " >
              </
asp:Label >
25 </ td >
26 </ tr >
27 < tr >
28 < td >
29 < asp:UpdatePanel ID = " UpdatePanel2 " runat = " server "
                          UpdateMode
= " Conditional " >
30 < Triggers >
31 < asp:AsyncPostBackTrigger ControlID = " Timer2 " />
32 </ Triggers >
33 < ContentTemplate >
34 < asp:TextBox ID = " txMsg " runat = " server "
                      TextMode
= " MultiLine " Height = " 300 " Width = " 795 "
35 ReadOnly = " true " ></ asp:TextBox >
36 </ ContentTemplate >
37 </ asp:UpdatePanel >
38 < asp:Timer ID = " Timer2 " runat = " server " Interval = " 1000 "
                      OnTick
= " Timer2_Tick " >
39 </ asp:Timer >
40 </ td >
41 </ tr >
42 < tr >
43 < td >
44 < asp:TextBox ID = " txSendMsg " runat = " server "
                        TextMode
= " MultiLine " Width = " 650 " ></ asp:TextBox >
45 < asp:Button ID = " btSend " runat = " server " Text = " Send "
                          OnClick
= " btSend_Click " />
46 < asp:Button ID = " btLogOff " runat = " server " Text = " LogOff "
                          OnClick
= " btLogoff_Click " />
47 </ td >
48 </ tr >
49 </ table >

 

其中首先必须有一个ScriptManager控件,并且一个ASPX中只能有一个,然后有两个UpdatePanel块,每块用一个Timer来定时触发异步更新,至于Timer的OnTick响应事件,当然就是设定的时间间隔到了时要做的事情了,这时,就可以异步更新定义在UpdatePanel中的控件内容。这时候,就不会发现页面整个在闪动啦。爽爽爽

 

另外一种使用ASP.NET AJAX的方式是用WEB SERVICE来响应客户端的异步请求,示例代码如下:

 

首先,ASPX页面中当然要有ScriptManager块,注意这个块比上面的那种用法多了几行,用标签指示了要请求的服务的路径,指向一个asmx文件。

        <asp:ScriptManager ID="ScriptManager1" runat="server" >
            <Services>
            <asp:ServiceReference Path="~/MyService.asmx" />
            </Services>
        </asp:ScriptManager>

 

然后是ASMX中的内容:

[System.Web.Script.Services.ScriptService]
public class MyService : System.Web.Services.WebService {

 

    public MyService () {

        //Uncomment the following line if using designed components
        //InitializeComponent();
    }

    [WebMethod]
    public string SayHello(string name) {
        return "Hello " + name;
    }
    
}

要注意把VS2008自动生成的ASMX中的那行[System.Web.Script.Services.ScriptService]给UNCOMMENT了。

 

在ASPX页面上有两个HTML 控件:

        <input type="text" id="inputName" />
        <input type="button" value="Call Service" onclick="return OnButton_Click()" />

 

并且button控件的响应函数为:

   <script  type="text/javascript">

        function OnButton_Click()
        {
            requestSimpleService=MyService.SayHello($get('inputName').value,OnRequestComplete);
            return false;            
        }
        function OnRequestComplete(result)
        {
            alert(result);
        }
    </script>

注意在这儿客户端要运行的脚本中可以直接使用MyService.SayHello函数!!!并且在原先只有的一个参数上,又传递了一个函数名进去,这个函数名指定了当请求结束时,客户端要做什么。这就是框架封装的作用。

 

现在我使用的是ASP.NET AJAX 3.5,在以往的2007年时代,ASP.NET AJAX 1.0,2.0的时候,使用VS2005开发相关应用,必须先手动安装ASP.NET AJAX组件,然后在WEB.CONFIG中进行配置才可以运行。但现在3.5版本中,ASP.NET AJAX已经被集成为ASP.NET原生应用了,可以直接使用,不城特殊设置!

你可能感兴趣的:(asp.net)