Gần đây tôi đã học cách viết WebControls của riêng mình, nhưng tôi vẫn còn mơ hồ về sự khác biệt giữa Render và RenderControl. Tôi bắt đầu bằng cách sử dụng Render, nhưng tại một số điểm tôi bắt đầu sử dụng RenderControl, mà bây giờ tôi sử dụng độc quyền. Nếu tôi đang hình thành thói quen xấu, tôi muốn nhét nó vào chồi ngay trước khi tôi bị cản trở.Sự khác nhau giữa Render và RenderControl trong quá trình tạo WebControl là gì?
Trả lời
RenderControl được sử dụng nếu có điều khiển hiện tại cung cấp những gì bạn muốn để bạn có thể tận dụng lợi thế của cách được hiển thị.
Kết xuất được sử dụng nếu bạn cần kiểm soát hoàn toàn cách html được hiển thị.
Bạn có thể dĩ nhiên kết hợp hai cho việc sử dụng tối ưu nhất về thời gian lập trình của bạn ...
RenderControl được sử dụng cho trang để hiển thị điều khiển con. Render cho phép một điều khiển riêng lẻ tự render.
Dưới đây là một đọc tốt: Render vs RenderControl
Trích từ liên kết:
Phương pháp Render cho phép bộ điều khiển để render bản thân bằng cách viết ra HTML để dòng phản ứng. Điều này chuyển một tham chiếu đến đối tượng HTMLTextWriter, có thể viết trực tiếp vào luồng phản hồi. Phương pháp này nên được sử dụng khi bạn lấy được trực tiếp từ điều khiển.
Phương pháp RenderControl được sử dụng bởi trang để làm cho mỗi cá nhân kiểm soát. Nó cho phép người tiêu dùng của lớp học của bạn hiển thị nó và bạn có thể sử dụng nó để hiển thị điều khiển con nếu bạn đang sử dụng điều khiển tổng hợp. Ngoài ra, một điều cần lưu ý là này sẽ không được gọi nếu chế độ hiển thị thuộc tính trên điều khiển được đặt thành sai.
Render là một phương pháp bảo vệ, có nghĩa là lớp duy nhất có nguồn gốc có thể truy cập vào nó. Nó được gọi trong vòng đời sự kiện và không được gọi rõ ràng trong mã của bạn.
RenderControl là phương thức công khai cho phép bạn gọi phương thức Render khi bạn muốn. Bạn sẽ sử dụng nó trong, ví dụ, một Custom Control nơi bạn lưu trữ các Controls trong ControlsCollection nhưng muốn Render chúng trong ô của chính chúng trong một bảng. Ví dụ:
writer.Write(""): foreach(Control ctl in Controls) { writer.Write("") ctl.RenderControl(writer); writer.Write(""); } writer.Write("");
Bạn nên luôn luôn ghi đè Render, và không RenderControl, vì nó được gọi trong tổ chức sự kiện Vòng đời (như tôi đã nói)
(từ http://forums.asp.net/t/909220.aspx/1, xin lỗi câu trả lời của tôi chỉ là một là sao chép và dán từ đó, nhưng tôi không thấy nhiều điểm viết lại lời giải thích rõ ràng như vậy)
Tôi vẫn không hiểu tại sao MS không đơn giản làm cho Render() là phương thức công khai. Tại sao một RenderControl riêng biệt() cần thiết?Lý do cho điều đó là mất tích từ tất cả các câu trả lời được đưa ra cho đến nay. Người đầu tiên có thể giải thích nó nhận được một upvote sáng bóng.
- 1. Sự khác nhau giữa UserControl, WebControl, RenderedControl và CompositeControl là gì?
- 2. Sự khác nhau giữa: = và + = trong tạo tệp là gì?
- 3. Sự khác nhau giữa toán tử quá tải = và nạp chồng quá trình tạo bản sao là gì?
- 4. Sự khác nhau giữa quá trình nhẹ và luồng?
- 5. Sự khác nhau giữa $ @ và $ * trong UNIX là gì?
- 6. Sự khác nhau giữa ống và ổ cắm là gì?
- 7. Sự khác nhau giữa Tomcat, JBoss và Glassfish là gì?
- 8. Sự khác nhau giữa FUTEX_WAIT và FUTEX_WAIT_PRIVATE là gì?
- 9. Sự khác nhau giữa "bool" và "bool" là gì?
- 10. Sự khác nhau giữa VCS và SCM là gì?
- 11. Trong Python, sự khác nhau giữa ".append()" và "+ = []" là gì?
- 12. Sự khác nhau giữa == và = trong Prolog là gì?
- 13. Sự khác nhau giữa // và /// trong Visual Studio là gì?
- 14. Sự khác nhau giữa * và. * Trong MATLAB là gì?
- 15. Sự khác nhau giữa: = và = trong MySQL là gì?
- 16. Sự khác nhau giữa "||" là gì và "hoặc" trong Perl?
- 17. Sự khác nhau giữa 'eq' và '= ~' trong Perl là gì?
- 18. Sự khác nhau giữa 'và #' trong Lisp là gì?
- 19. Sự khác nhau giữa @dynamic và @synthesize là gì?
- 20. Sự khác nhau giữa Phing và PHPUnderControl là gì?
- 21. Sự khác nhau giữa dict() và {} là gì?
- 22. Sự khác nhau giữa init() và window.init() là gì?
- 23. Sự khác nhau giữa Ctrl-C và SIGINT là gì?
- 24. Sự khác nhau giữa GEM_HOME và GEM_PATH là gì?
- 25. Sự khác biệt giữa quá trình giết và quy trình đóng là gì?
- 26. sự khác nhau giữa plugin và thư viện là gì?
- 27. Sự khác nhau giữa AxInterop và Interop là gì?
- 28. Sự khác nhau giữa dataview và datatable là gì?
- 29. Sự khác nhau giữa sysfs_create_file() và sysfs_create_group() là gì?
- 30. Sự khác nhau giữa CellClick và CellMouseClick là gì?
+1 để biết chi tiết một số bit khó hiểu về hệ thống. Giúp vẽ một bức tranh đầy đủ hơn cho tôi. –