Tạo menu động lấy từ Database trong asp.net

Trong bài viết này, bạn sẽ học được cách tạo menu động lấy dữ liệu từ database trong asp.net

I. Introduction

dynamically populationg menu

II. Create Database Tables

Bạn cần thiết kế một bảng để lưu trữ menu

database of menu

Ở đây, MenuLocation là cột dùng để lưu trữ đường dẫn tương đối khi mà người dùng click chuột vào.

Chèn dữ liệu mẫu vào nào:
B1: Cần phải có một vài menu với ParentId = 0, tức là menu cha đó.
B2: Thêm các sub menu cho các menu bên trên.

Ok!, sau khi thêm chúng ta sẽ được như sau:

Ở đây, cột MenuLocation bạn có thể thêm url ví dụ như Default.aspx hoặc User/NewUserAdd.aspx

III. MasterPage

Thông thường khi chúng ta thiết kế menu, thì chúng ta thường chèn nó vào file MasterPage để chúng ta đỡ phải thiết kế nhiều lần,

B1: Tạo một menu control trong file MasterPage:

B2: Trong code behind chúng ta viết thêm một hàm getMenu để lấy ra toàn bộ menu từ database, hàm này sẽ được dùng trong hàm Page_Load của trang MasterPage khi !IsPostBack

IV. Chú ý quan trọng

Menu control này sẽ hoạt động không tốt đối với một số trình duyệt khác nhau, cho nên để giải quyết vấn đề này, bạn thêm một file .browser trong thư mục App_browser của bạn
browser
Sau đó mở file safari.browser ra, xóa sạch code trong đó, và thêm đoạn code sau vào:

Save nó lại và chiêm ngưỡng thành quả nào.
Bạn nào không làm được thì có thể download mã nguồn bài viết dưới đây nhé!