Sử dụng DropDownList trong DataGrid
Posted: 12/1/2010.
Bài viết này sẽ chỉ cho bạn cách sử dụng điều khiển DropDownList trong DataGrid (hoặc GridView). Bạn sẽ cần thay đổi lại một chút mã trong trường hợp GridView để có được kết quả mong muốn.
Bài viết này sẽ chỉ cho bạn cách sử dụng điều khiển DropDownList trong DataGrid (hoặc GridView). Bạn sẽ cần thay đổi lại một chút mã trong trường hợp GridView để có được kết quả mong muốn.
Trong file DropDown.aspx cần có đoạn mã sau đây:
- <asp:DropDownList id="DropDownList1" runat="server"
- DataSource="<%# GetCategory() %>"
- DataTextField="CategoryName"
- DataValueField="CategoryId"
- SelectedIndex='<%# GetCategoryID((string)DataBinder.Eval(Container.DataItem, "CategoryName")) %>'
- />
Ở dòng thứ hai, chúng ta thiết lập DataSource của điều khiển DropDownList với hàm GetCategory(), hàm này sẽ lấy các bản ghi Category từ cơ sở dữ liệu và trả về một DataTable. Ở dòng cuối, chúng ta thiết lập SelectedIndex cho hàm GetCategory(), hàm này sẽ lấy CategoryName hiện thời như là đối số, và trả về location (một số nguyên) của CategoryName, điều này cho phép điều khiển DropDownList hiển thị đúng tên của bản ghi hiện thời.
Đoạn mã C# như sau:
Điểm quan trọng nhất trong file C# này là ở chỗ:
- Trong hàm Product_Edit(), bạn phải gọi hàm BindCategory() để thiết lập DataTable _category trước tiên, và sau đó thiết lập EditItemIndex cho DataGrid, và cuối cùng là gọi hàm BindProduct(). Điều khiển DropDownList sẽ không hiển thị gì nếu như bạn đảo lại trật tự này. Bởi vì mỗi lần bạn thiết lập EditItemIndex, DataGrid sẽ cần diễn dịch lại các bản ghi, và lúc đó điều khiển DropDownList truy xuất vào phương thức GetCategory() để nhận về nguồn dữ liệu, nếu phương thức này không trả về dữ liệu gì thì đương nhiên bạn sẽ không nhận thấy gì hết. Ghi nhớ là: trước khi thiết lập EditItemIndex của DataGrid, hãy thiết lập DataDource của điều khiển.
-Trong hàm Product_Update(), bạn không truy xuất trực tiếp điều khiển DropDownList nằm trong DataGrid được, giải pháp để lấy được giá trị được chọn trong điều khiển DropDownList là phương thức FindControl(). Hàm này lấy tên của điều khiển DropDownList làm đối số của nó, và sau đó trả về điều khiển DropDownList được tìm thấy để bạn có thể sử dụng điều khiển trả về đó để lấy ra giá trị chỉ số được chọn. Hãy ghi nhớ là: sử dụng hàm FindControl() để trả về bất cứ điều khiển nào mà bạn muốn tìm trong DataGrid như Text Box, Text Area, Label, Calendar...
[Nghean-Aptech]
Các tin mới:
Hướng dẫn tích hợp giao diện trang quản trị SB Admin 2 vào Laravel 5.8.
Hướng dẫn tích hợp Google ReCaptcha v2 vào Laravel bằng curl.
Học lập trình React JS trong vòng 5 phút.
Sử dụng trình soạn thảo CKeditor tích hợp CKFinder với Laravel.
Hướng dẫn cài đặt Apache, PHP, MySQL, PHPMyAdmin trên Windows 10 và cấu hình SendMail.
Các tin cũ hơn:
Đọc ghi Windows Registry với Java.
Tạo layout đơn giản bằng CSS & DIV.
Tạo tài liệu XML từ trang JSP.
Lấy thông tin trình duyệt từ trang JSP.
Nhúng bộ soạn thảo WYSIWYG cho web.