27
AJAX Control Toolkit Hoàng Anh Tú

Ajax control toolkit

Embed Size (px)

Citation preview

Page 1: Ajax control toolkit

AJAX Control Toolkit Hoàng Anh Tú

Page 2: Ajax control toolkit

Nội dung

Introduction to AJAX

AJAX & ASP.NET

AJAX Control Toolkit

AJAX Control Toolkit

Page 3: Ajax control toolkit

Ứng dụng AJAX £ Xây dựng các ứng dụng web tương tác với

người dùng

Page 4: Ajax control toolkit

Kiến trúc Client – Server

Client Server

HTTP Request

HTTP Response

Gửi request đến server

Phản hồi request từ

client

Xử lý request

Xóa dữ liệu trên màn hình

Nạp nội dung mới lên màn hình

Vẽ lại toàn bộ màn hình

Page 5: Ajax control toolkit

AJAX Gửi request

bằng Javascript

Trao đổi dữ liệu bằng

XML

Chỉ nạp dữ liệu cần thiết

Page 6: Ajax control toolkit

AJAX – Hạn chế £ Tăng thời gian phản hồi từ server £ Khó xác định địa chỉ nội dung trang web

•  Khó trở về trang trước đó •  Không thể lưu URL nội dung trang web

£ Không thể tìm thấy bằng các search engine £ Tạo nên các lỗ hổng bảo mật

Page 7: Ajax control toolkit

AJAX & Javascript Tạo đối tượng request

if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }

Page 8: Ajax control toolkit

AJAX & Javascript Gửi dữ liệu đồng bộ

xmlhttp.open("GET",”http://localhost/ajax.aspx",false); xmlhttp.send();

document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

Page 9: Ajax control toolkit

AJAX & Javascript Gửi request bất đồng bộ

xmlhttp.open("GET",“http://localhost/ajax.aspx",true); xmlhttp.send();

xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { // handle response data document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }

Page 10: Ajax control toolkit

AJAX & Javascript Xử lý dữ liệu trả về

document.getElementById("myDiv").innerHTML=xmlhttp.responseText

xmlDoc=xmlhttp.responseXML; var txt=""; x=xmlDoc.getElementsByTagName("ARTIST"); for (i=0;i<x.length;i++) { txt=txt + x[i].childNodes[0].nodeValue + "<br />"; } document.getElementById("myDiv").innerHTML=txt;

Page 11: Ajax control toolkit

AJAX & ASP.NET

Page 12: Ajax control toolkit

AJAX & ASP.NET

ASP.NET Libraries

Javascript Libraries

- Không cần sử dụng Javascript - Chỉ áp dụng được cho 1 số tình huống cụ thể qua các control - Giảm thời gian cài đặt

- Sử dụng toàn bộ mã nguồn javascript - Linh động trong cài đặt - Thời gian cài đặt nhanh

Page 13: Ajax control toolkit

ASP.NET AJAX

Client-side •  Thư viện javascript

Server-side •  Server control •  Sử dụng thư viện

javascript ở client-side

Page 14: Ajax control toolkit

ASP.NET AJAX Client-side

Core Libraries - MicrosoftAjax.js - MicrosoftAjaxWebForms.js - MicrosoftAjaxTimer.js

Client-side •  Thư viện javascript

Hơn 100 thư viện nhỏ - Lưu thông tin globalization

Lưu trong System.Web.Extens

ions.dll

Page 15: Ajax control toolkit

ASP.NET AJAX Server-side

Server-side

•  Server control •  Sử dụng thư viện

javascript ở client-side

ScriptManager

Tạo các liên kết đến các thư

viện javascript cần thiết

Page 16: Ajax control toolkit

UpdatePanel

Partial Rendering

Request trong từng phần chỉ làm refresh phần đó

Chia trang web thành nhiều phần nhỏ

Mỗi phần đặt trong một UpdatePanel

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> </asp:UpdatePanel>

Page 17: Ajax control toolkit

UpdatePanel - Example

Page 18: Ajax control toolkit

UpdatePanel - Example

Update phần trên

Update cả 2 phần

Page 19: Ajax control toolkit

UpdatePanel – Example Code <asp:ScriptManager ID="ScriptManager1" runat="server" />

<asp:UpdatePanel runat="server" ID="UpdatePanel“ UpdateMode="Conditional"> <Triggers> <asp:AsyncPostBackTrigger ControlID="UpdateButton2" EventName="Click" /> </Triggers> <ContentTemplate> <asp:Label runat="server" ID="DateTimeLabel1" /> <asp:Button runat="server" ID="UpdateButton1" OnClick="UpdateButton_Click" Text="Update" /> </ContentTemplate> </asp:UpdatePanel>

<asp:UpdatePanel runat="server" ID="UpdatePanel1" UpdateMode="Conditional"> <ContentTemplate> <asp:Label runat="server" ID="DateTimeLabel2" /> <asp:Button runat="server" ID="UpdateButton2" OnClick="UpdateButton_Click" Text="Update" /> </ContentTemplate> </asp:UpdatePanel>

protected void UpdateButton_Click(object sender, EventArgs e) { DateTimeLabel1.Text = DateTime.Now.ToString(); DateTimeLabel2.Text = DateTime.Now.ToString(); }

Server-side code

Client-side code

Page 20: Ajax control toolkit

UpdatePanel – Example Demo

Page 21: Ajax control toolkit

AJAX CONTROL TOOLKIT

Page 22: Ajax control toolkit

AJAX Control Toolkit

ASP.NET AJAX

ASP.NET AJAX Control Toolkit

http://www.asp.net/ajax/ajaxcontroltoolkit/samples/

extend

Page 23: Ajax control toolkit

Get started

Install

Page 24: Ajax control toolkit

Hello AJAX Control Toolkit <asp:ScriptManager ID=“sm" runat="server" /> <cc1:Editor ID="Editor1" runat="server" />

Page 25: Ajax control toolkit

Calendar Control <asp:toolkitscriptmanager ID="ScriptManager1" runat="server"></asp:toolkitscriptmanager> <asp:TextBox ID="txtDate" runat="server"></asp:TextBox> <asp:CalendarExtender ID="ceDate" runat="server“ TargetControlID="txtDate“> </asp:CalendarExtender>

Page 26: Ajax control toolkit

Calendar Control

Page 27: Ajax control toolkit