Vì vậy, nhiều điều khiển khác nhau để lựa chọn! Các phương pháp hay nhất để xác định điều khiển nào sẽ sử dụng để hiển thị dữ liệu trong ASP.NET?
Vì vậy, nhiều điều khiển khác nhau để lựa chọn! Các phương pháp hay nhất để xác định điều khiển nào sẽ sử dụng để hiển thị dữ liệu trong ASP.NET?
Câu trả lời:
Nó thực sự là về những gì bạn đang cố gắng đạt được
Gridview - Hạn chế về thiết kế, hoạt động giống như một bảng html. Nhiều chức năng được xây dựng như chỉnh sửa / cập nhật, trang, sắp xếp. Rất nhiều chi phí.
DataGrid - Phiên bản cũ của Gridview. Chế độ xem lưới là một siêu lưới dữ liệu.
Datalist - phiên bản có thể tùy chỉnh nhiều hơn của Gridview. Cũng có một số chi phí. Nhiều công việc thủ công hơn vì bạn phải tự thiết kế.
ListView - Datalist mới :). Gần như là sự kết hợp giữa datalist và gridview, nơi bạn có thể sử dụng phân trang và xây dựng trong Gridview giống như chức năng, nhưng có quyền tự do thiết kế. Một trong những điều khiển mới trong gia đình này
Bộ lặp - Trọng lượng rất nhẹ. Không có chức năng tích hợp như Headers, Footers. Có chi phí ít nhất.
Mọi người khác đánh nó: Nó phụ thuộc.
Bây giờ để có một số hướng dẫn cụ thể (mở rộng dựa trên câu trả lời tuyệt vời của WebDude ở trên) ...
Thiết kế của bạn có phù hợp với bảng tính tự nhiên hoặc chế độ xem lưới của dữ liệu không? GridView .
Bạn có cần hiển thị danh sách hoặc dạng xem dữ liệu được định dạng khác, có thể với đầu trang và chân trang, và có thể với các điều khiển và / hoặc định dạng cụ thể cho từng bản ghi dữ liệu không? (EG, các liên kết được tùy chỉnh, có thể là LinkButtons hoặc các điều khiển chỉnh sửa cụ thể?) Màn hình này có hiển thị cụ thể không phù hợp một cách tự nhiên với bảng tính hoặc dạng xem lưới không? ListView
Nếu bạn đáp ứng tất cả các tiêu chí của ListView, nhưng bạn sẽ tự nhiên phù hợp với lưới, bạn có thể xem xét DataList .
Tôi chọn Bộ lặp khi tôi chỉ cần một số dữ liệu cơ bản được lặp lại với một số bit thiết kế tùy chỉnh, không có đầu trang, không có chân trang, đẹp và sạch sẽ.
Có thể khai báo mã mẫu sau cho cả 3 (ListView, DataList, Repeater)
<asp:ListView runat="server" OnItemCommand="Unnamed1_ItemCommand">
<ItemTemplate> <%# Eval("Name")%> </ItemTemplate>
<asp:ListView>
trong các danh sách sau Bạn có thể xem các mẫu và tùy chọn có sẵn cho từng người trong số họ và tự xem sự khác biệt
ListView (lưu ý chỉnh sửa, nhóm, chèn, bố cục)
DataList (lưu ý các cặp Kiểu)
Bộ lặp
CompositeDataBoundControl :
nhìn vào hệ thống phân cấp các lớp sau (và các điều khiển liên quan).
các điều khiển này lưu trữ các điều khiển asp.net khác trong các mẫu của chúng để hiển thị dữ liệu giới hạn cho người dùng
Kiểm soát ListView
Điều khiển ListView cũng sử dụng các mẫu để hiển thị dữ liệu. Tuy nhiên, nó hỗ trợ nhiều mẫu bổ sung cho phép nhiều kịch bản hơn khi làm việc với dữ liệu của bạn. Các mẫu này bao gồm LayoutTemplate, GroupTemplate, ItemSeparatorTemplate .
Điều khiển ListView ( không giống như DataList và Repeater ) cũng hỗ trợ ngầm định khả năng chỉnh sửa, chèn và xóa dữ liệu bằng cách sử dụng điều khiển nguồn dữ liệu. Bạn có thể xác định các mẫu riêng cho từng trường hợp này.
Kiểm soát danh sách dữ liệu
Điều khiển DataList hoạt động giống như điều khiển Bộ lặp . Nó lặp lại dữ liệu cho từng hàng trong tập dữ liệu của bạn và nó hiển thị dữ liệu này theo mẫu đã xác định của bạn. Tuy nhiên , nó đưa ra dữ liệu được xác định trong mẫu trong các cấu trúc HTML khác nhau. Điều này bao gồm các tùy chọn cho bố cục ngang hoặc dọc và nó cũng cho phép bạn đặt cách dữ liệu sẽ được lặp lại, dưới dạng luồng hoặc bố cục bảng.
Điều khiển DataList không tự động sử dụng điều khiển nguồn dữ liệu để chỉnh sửa dữ liệu. Thay vào đó, nó cung cấp các sự kiện lệnh trong đó bạn có thể viết mã của riêng mình cho các tình huống này. Để bật các sự kiện này, bạn thêm điều khiển Nút vào một trong các mẫu và đặt thuộc tính CommandName của nút thành từ khóa chỉnh sửa, xóa, cập nhật hoặc hủy. Sự kiện thích hợp sau đó được nâng lên bởi điều khiển DataList.
Điều khiển bộ lặp
Điều khiển Bộ lặp cũng sử dụng các mẫu để xác định ràng buộc tùy chỉnh. Tuy nhiên, nó không hiển thị dữ liệu dưới dạng các bản ghi riêng lẻ. Thay vào đó, nó lặp lại các hàng dữ liệu như bạn chỉ định trong mẫu của mình. Điều này cho phép bạn tạo một hàng dữ liệu duy nhất và nó lặp lại trên trang của bạn.
Điều khiển Bộ lặp là một mẫu chỉ đọc . Nghĩa là, nó chỉ hỗ trợ ItemTemplate. Nó không hoàn toàn hỗ trợ chỉnh sửa, chèn và xóa. Bạn nên xem xét một trong các điều khiển khác nếu bạn cần chức năng này, nếu không, bạn sẽ phải tự viết mã này cho điều khiển Bộ lặp.
Các mô tả trên là từ cuốn sách MCTS Exam 70-515 Web Applications Development with Microsoft.NET Framework 4 .
DataGrid thậm chí không được đề cập trong cuốn sách này và được thay thế bằng GridViews phổ biến và được những người dùng khác trả lời một cách độc đáo
Thật! Tôi đã viết blog về sự khác biệt giữa các công cụ dữ liệu ASP.NET 4.0 . Về cơ bản, gridview là cách mạnh mẽ nhất để trình bày thông tin dạng bảng, trong khi điều khiển ListView dành cho việc hiển thị dữ liệu lặp lại phức tạp hơn. Nếu tôi đưa ra lời khuyên cho một người mới sử dụng ASP.NET, tôi sẽ yêu cầu họ tìm hiểu các góc nhìn từ trong ra ngoài và bỏ qua các điều khiển khác để bắt đầu.
Tất cả phụ thuộc vào cách bạn muốn bố trí dữ liệu của mình.
Nếu bạn cần kiểm soát bố cục (như bảng so với CSS so với bất cứ thứ gì), hãy sử dụng Bộ lặp hoặc ListView. Giữa cả hai, ListView cung cấp cho bạn nhiều sự kiện hơn và các lệnh tích hợp để chỉnh sửa, chọn, chèn. Ngoài ra, chức năng phân trang và nhóm. Một bộ lặp cực kỳ đơn giản, nó lặp lại một bố cục với dữ liệu. Vì bạn đang xây dựng bố cục bằng tay, Listview và Repeater yêu cầu nhiều mã hơn.
GridView là một DataGrid cập nhật nên hầu như không có lý do gì để sử dụng DataGrid. GridView hoạt động thực sự tốt khi được kết nối với nguồn dữ liệu ASP.NET tiêu chuẩn, nhưng hạn chế bạn ở một bố cục dạng bảng với rất nhiều quy tắc bố cục. GridView yêu cầu ít mã hơn vì bạn đang sử dụng bố cục dựng sẵn.