Thứ Hai, 16 tháng 3, 2015

Hướng dẫn code chức năng tìm kiếm

Hướng dẫn code chức năng tìm kiếm cho website bán hàng
Tìm kiếm là một chứ năng quan trọng của trang web. Nhất là các trang web có nhiều dữ liệu, người dùng sẽ phải sử dụng chức năng tìm kiếm để có thể tìm được sản phẩm mình cần tìm một cách nhanh nhất. Trong bài hướng dẫn hôm nay, tôi sẽ hướng dẫn các bạn làm một ví dụ về tìm kiếm cho trang web của mình.

- Đầu tiên, ta tạo một Web User Control có tên “My_U_SearchPrice.ascx” như sau

- Add Web User Control này vào trang Index.Master. Mục đích là để trang nào cũng hiện phần tìm kiếm này.
- Chúng ta có 4 tiêu chí tìm kiếm: loại sản phẩm, nhãn hiệu, giá sản phẩm, và từ khóa người dùng nhập vào.
- 3 tiêu chí tìm kiếm: loại sản phẩm, nhãn hiệu, giá sản phẩm đều dùng dropdownlist. Trong đó, 2 tiêu chí đầu sẽ load dữ liệu từ trong database. Tiêu chí giá ta fix cứng ở trong code.
 
 

- Việc tiếp theo, khi click vào vào nút tìm kiếm ta phải lọc được các điều kiện tìm kiếm theo các tiêu chí tìm kiếm tương ứng.

- Ta khai báo một biến “Chuoi” có kiểu “string” để lưu giữ điều kiện lọc. Điều này chỉ xảy ra khi có ít nhất một điều kiện tìm kiếm
if (drlNhom.SelectedValue != "0" || drlNhanhieu.SelectedValue != "0" || drlGia.SelectedValue != "0" || txtkeyword.Text != "")
- Vì Web User Control này nằm trong trang Master, trong khi ta lại hiển thị kết quả sản phẩm ở một trang aspx. Chính vì vậy, để truyền được các điều kiện tìm kiếm sang trang hiển thị kết quả , ta sẽ lưu chúng vào các biến Session.

- Đến đây chắc có bạn sẽ thắc mắc. Ta chỉ cần lưu biến “Chuoi” vào Session là được rồi. Vì trong biến chuỗi đã chứa các điều kiện lọc. Vậy 4 Session ở dưới có tác dụng gì?
- Các bạn thử chọn các điều kiện tìm kiếm rồi ấn vào nút Search. Khi trang tìm kiếm được load ra, Các dropdownlist sẽ về index=0, text của ô textbox cũng sẽ về rỗng. Đó là lý do tại sao ta lại lưu 4 điều kiện đó và Session. Để khi load sang trang tìm kiếm , các điều kiện trên dropdownlist và textbox vẫn được giữ nguyên.

- Tiếp theo, ta tạo một trang aspx có tên “My_Search_By_Price.aspx” để hiển thị kết quả tìm được. Trang này cũng được kế thừa từ Index.Master.
- Mục đích của trang này là hiển thị kết quả tìm kiếm sản phẩm . Nó không khác gì trang hiển thị sản phẩm . Các bạn có thể xem lại các bài trước nếu không lắm rõ phần này. Tôi sẽ không nói lại phần này nữa.
- Chỉ có một điều cần lưu ý là khi gọi câu lệnh hiển thị số trang và hiển thị sản phẩm ta phải thêm điều kiện tìm kiếm vào.
listpage = ProductService.Product_GetByTop("", Session["key"].ToString() + " and Active=1", "");
list = ProductService.Product_Paging(currentpage, pagesize, Session["key"].ToString(), "");
Trên đây tôi vừa demo cho các bạn một ví dụ tìm kiếm cơ bản. Hy vọng bài hướng dẫn này sẽ có ích cho các bạn.


Không có nhận xét nào:

Đăng nhận xét