Tìm kiếm Blog này

Sử Dụng Ajax Trong ASP.Net - Làm quen với Ajax qua ví dụ

(Nguồn từ http://zensoft.vn)
Một trong những kỹ thật lập trình đình đám nhất hiện nay mà chúng ta không thể không nghiên cứu. Qua các bài viết này tôi hi vọng sẽ giúp các bạn hiểu được cũng lắm vững các nguyên tắc lập trình cơ bản nhất của Ajax trong môi trường .Net.
AJAX là gì?
AJAX, viết tắt từ Asynchronous JavaScript and XML (JavaScript và XML không đồng bộ), là bộ công cụ cho phép tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và chỉ hiển thị những gì cần thiết, thay vì tải đi tải lại toàn bộ trang web. AJAX không phải một công nghệ đơn lẻ mà là sự kết hợp một nhóm công nghệ với nhau. Trong đó, HTML và CSS đóng vai hiển thị dữ liệu, mô hình DOM trình bày thông tin động, đối tượng XMLHttpRequest trao đổi dữ liệu không đồng bộ với máy chủ web, còn XML là định dạng chủ yếu cho dữ liệu truyền dữ liệu và Javacript có nhiệm vụ lắp ráp chúng lại với nhau.
Các bạn có thể tìm hiểu kĩ hơn về Ajax qua bài viết Kỹ thuật lập trình Ajax
Hiển nhiên để phát triển ứng theo phong các AJAX chúng ta cần phải biết về JavaScript, DOM, CSS, HTML, XML… Điều đó thật không dễ dàng gì. Thật may là hiện tại đã có khá nhiều thư viện cho phép chúng ta phát triển ứng dụng AJAX nhanh và đơn giản hơn nhiều. (Chúng ta sẽ tìm hiểu về những thư viện này trong các bài sau ;-) ).
Ví dụ
Trong ví dụ tôi sẽ trình bày sau đây sẽ giúp chúng ta làm quen với cách mà AJAX làm việc, tất nhiên tại ví dụ này chúng ta sẽ không dùng những thư viện xây dựng sẵn.
AjaxEx1.aspx


Code:

Thí dụ về Ajax

Hãy chọn nhóm thư mục
Chọn thư mục:
Chọn bài viết:
AjaxEx1.aspx.cs protected void Page_Load(object sender, EventArgs e) {
ddlSuperCategories.DataSource = SuperCategoriesBF.GetSuperCategoriesAll(); ddlSuperCategories.DataTextField = "Title"; ddlSuperCategories.DataValueField = "SuperCategoryID"; ddlSuperCategories.DataBind(); ddlSuperCategories.Items.Insert(0, new ListItem("Chọn nhóm thư mục...", "0")); // handle change events on client ddlSuperCategories.Attributes.Add("onchange", "getCategories(this.value);"); ddlCategories.Attributes.Add("onchange", "getArticles(this.value);"); ddlArticles.Attributes.Add("onchange", "displayResults();");
} AjaxServer.aspx.cs protected void Page_Load(object sender, EventArgs e) { int superCategoryID=0; if (Request["superCategoryID"] != null) int.TryParse(Request["superCategoryID"], out superCategoryID); int categoryID = 0; if (Request["categoryID"] != null) int.TryParse(Request["categoryID"], out categoryID); // either retrieve cities or class dates if (categoryID != 0) GetArticles(categoryID); else GetCategories(superCategoryID); } /// /// Trả về dữ liệu thư mục bài viết theo chuẩn XML /// /// private void GetCategories(int superCategoryID) { // lấy dữ liệu List categories = CategoriesBF.GetCategoriesBySuperCategoryID(superCategoryID); StringBuilder sb = new StringBuilder(); sb.Append(@""); sb.Append(@""); sb.Append(@"Chọn thư mục..."); foreach (CategoriesBF c in categories) { sb.Append(@""); } sb.Append(@""); Response.Clear(); Response.ContentType = "text/xml"; Response.Write(sb.ToString()); Response.End(); } private void GetArticles(int categoryID) { // lấy dữ liệu List articles = ArticlesBF.GetArticlesPublishedPagedByCategoyID(categoryID, 0, 10); //các bạn có thể hiểu là lấy 10 bài viết đầu tiên trong thư mục có ID = categoryID StringBuilder sb = new StringBuilder(); sb.Append(@""); sb.Append(@""); sb.Append(@"
Chọn bài viết...
"); // note: class is a keyword, therefore prefix with '@' foreach (ArticlesBF a in articles) { sb.Append(@"
"); } sb.Append(@"
"); Response.Clear(); Response.ContentType = "text/xml"; Response.Write(sb.ToString()); Response.End(); }


Click vào đây để xem ví dụ