Ngôn ngữ ASP.NET - Web Navigation
Các điều khiển navigation
Bạn đã học được cách đơn giản để cho một người truy cập trang web từ trang này sang trang khác. Thí dụ, bạn có thể thêm các liên kết HTML (hoặc điều khiển HyperLink) trong trang của bạn để cho phép người dùng lướt web thông qua trang web của bạn. Nếu bạn muốn thực hiện chuyển hướng trang, bạn có thể gọi Response.Redirect() hoặc Server.Transfer() trong trang mã lệnh của bạn. Nhưng trong ứng dụng web chuyên nghiệp, các yêu cầu chuyển hướng chuyên sâu hơn. Các ứng dụng này cần một hệ thống cho phép người dùng lướt web thông qua một hệ thống các trang, mà không buộc bạn viết đoạn code chuyển hướng cùng buồn tẻ trong mỗi trang.
ASP.NET cung cấp một mô hình chuyển hướng dễ dàng để cho phép người dùng lướt web thông qua các ứng dụng web của bạn. Trước khi bạn có thể sử dụng mô hình này, bạn cần phải xác định hệ thống cấp bậc của trang web của bạn, nói cách khác, làm thế nào các trang được tổ chức thành các nhóm một cách logic. Bạn sau đó xác định rằng cấu trúc trong một tập tin chuyên dụng và kết nối thông tin đó để chuyển hướng với các điều khiển menu bao gồm TreeView và Menu.
ASP.NET 4.5 cung cấp ba navigation controls là SiteMapPath, TreeView, và Menu kết hợp với SiteMapDataSource. SitemapPath cung cấp đường dẫn đến trang hiện tại, TreeView hiển thị cấu trúc website và Menu chỉ hiển thị menu Home. Xem hình minh hoạ dưới:
1. Tập tin Web.sitemap
Sitemap (còn được gọi là sơ đồ của một trang web) là một tập tin văn bản có chứa tất cả các URL (đường dẫn) của một trang web. Sitemap còn có thể chứa các siêu dữ liệu về mỗi URL thông báo sẽ được gửi đến cho bạn khi nó mới được cập nhật.
- Các điều khiển TreeView, Menu, SiteMapPath hiển thị cấu trúc điều hướng đã được định nghĩa trong một file XML, có tên Web.sitemap
- Web.sitemap phải được đặt trong thư mục gốc của ứng dụng.
- Để hiển thị cấu trúc điều hướng được định nghĩa trên file Web.sitemap, điều khiển TreeView, Menu phải buộc với một điều khiển SiteMapDataSource
- Ngược lại, điều khiển SiteMapPath tự động hiển thị cấu trúc điều hướng trong Web.sitemap không cần sử dụng điều khiển SiteMapDataSource
Các bước tạo SiteMap:
Bước 1: Trong solution explorer, click phải trên tên website chọn Add new Item, chọn site map
Bước 2: Tập tin site map có phần mở rộng là Web.sitemap
Bước 3: Cấu trúc của tập tin site map như sau:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
<siteMapNode url="" title="" description="">
<siteMapNode url="" title="" description="" />
<siteMapNode url="" title="" description="" />
</siteMapNode>
</siteMap>
Trong đó: Một file .sitemap chỉ có môt phần tử <siteMap >
URL: Url của trang, URL không được trùng
Title: Đoạn văn bản hiển thị trên menu
Description: Đoạn văn bản tool tip của trang
siteMapNode: có thể chứa các siteMapNode khác, Ví dụ siteMapNode sản phẩm chứa: Phần cứng, Phần mềm
<siteMapNode url="Products.apsx" title="Sản phẩm" description="Sản phẩm">
<siteMapNode url ="Hardware.aspx" title="Phần cứng" description="Phần cứng"></siteMapNode>
<siteMapNode url ="Software.aspx" title="Phần mềm" description="Phần mềm"></siteMapNode>
</siteMapNode>
Site map được tạo có dạng
Bước 4: Lưu tập tin Web.sitemap
Bước 5: Tạo các trang Navigate
- Home.aspx
- Products.aspx
- Hardware.aspx
- Software.aspx
- Services.aspx
- Consulting.aspx
- Outsourcing.aspx
- About.aspx
- Contact.aspx
2. SiteMapDataSource
- Dùng để chứa nguồn dữ liệu được lưu trữ trong tập tin .sitemap
- Nguồn dữ liệu mặc định là tập tin Web.sitemap
- Thường sử dụng kết hợp với các điều khiển Menu và TreeView
- Các thuộc tính:
- SiteMapProvider: tên SiteMapProvider đã khai báo trong tập tin Web.config. Nếu nguồn là Web.sitemap thì không không cần khai báo thuộc tính này
- ShowStartingNode(True/False): bắt đầu bằng siteMapNode gốc hay không
- SiteMapProvider: tên SiteMapProvider
- StartingNodeUrl: địa chỉ URL cho node bắt đầu
- Liên kết với Menu và TreeView :
Sử dụng thuộc tính DataSourceID của 2 điều khiển trên, giá trị của thuộc tính là ID của SiteMapDataSource - Liến kết với SiteMapPath tạo thành sơ đồ đường dẫn các trang các được xem trong Navigation.
3. SiteMapPath
Kéo thả SiteMapPath từ toolbox vào website
Chọn mục Auto Format.., chọn một lựa chọn scheme thích hợp trong danh sách và click OK
Chọn SiteMapDataSource từ ToolBox
Kết quả thực thi trang web: