Thông thường tôi sử dụng nó khi tôi truy cập vào một thuộc tính của điều khiển tổng hợp phụ thuộc vào điều khiển con. Nhưng tôi cũng đã thêm nó vào OnInit của một điều khiển để tôi có thể chắc chắn rằng một lĩnh vực ẩn đã được thêm vào một cách chính xác. Chỉ một phút trước, tôi đã gọi nó trong RenderControl vì tôi gặp sự cố khi hiển thị một bộ mở rộng lịch và nó đã sửa nó. Tôi bắt đầu nhận được một chút bối rối khi tôi cần và khi tôi không cần phải gọi EnsureChildControls và khi tôi nên gọi nó. Mọi con trỏ đều được chào đón. Cảm ơn!Việc sử dụng thích hợp của EnsureChildControls() là gì?
Trả lời
Trình kích hoạt EnsureChildControls CreateChildControl nếu nó chưa được kích hoạt trước đó. Điều này phải được thực hiện chỉ một lần trong vòng đời của trang. Tôi gọi nó là vô điều kiện trong OnInit/Page_Init và không có nơi nào khác. Nơi này có lợi thế là các điều khiển được tạo trước khi ASP.NET tải ViewState. Nếu bạn sử dụng ViewState hoặc ControlState, nó là cần thiết để tạo các điều khiển con sớm.
Sẽ gọi nó trong OnInit loại bỏ sự cần thiết phải gọi nó trong thuộc tính nếu tài sản truy cập một cái gì đó như TextBox1.text? – Mike
Nói chung tôi nói "có", nhưng chi tiết nó phụ thuộc vào cách sử dụng của bạn. Nếu bạn gọi hàm EnsureChildControls trong OnInit thì an toàn để truy cập các điều khiển (thông qua các thuộc tính hoặc cách khác) mà không cần gọi lại nó trong tất cả các giai đoạn tiếp theo của vòng đời trang (Load, Postback Events, Render,…) Nếu bạn dựa vào ViewState cách sử dụng duy nhất. –
Phương thức EnsureChildControls đảm bảo các điều khiển con được tạo trước khi truy cập chúng. Bất cứ lúc nào bạn viết các điều khiển tổng hợp, bạn muốn xây dựng các điều khiển bên trong các sự kiện CreateChildControls, sau đó gọi EnsureChildControls trước khi truy cập chúng để đảm bảo tất cả các điều khiển đã được tạo để bạn không nhận được một ngoại lệ tham chiếu null.
- 1. việc sử dụng thích hợp của chỉ thị "dự án" CMake là gì
- 2. C++: Việc sử dụng thích hợp cho std :: logic_error exception là gì?
- 3. Việc sử dụng "??" là gì?
- 4. Cách thích hợp để sử dụng jQuery kết hợp với 'sử dụng nghiêm ngặt' là gì?
- 5. Việc sử dụng plist là gì?
- 6. Việc sử dụng AtomicReferenceArray là gì?
- 7. Cách thích hợp để sử dụng PreparedStatementCreator của Spring JDBC là gì?
- 8. Cạm bẫy của việc sử dụng sql_variant là gì?
- 9. Ưu điểm của việc sử dụng sai sót là gì?
- 10. Những hạn chế của việc sử dụng tích hợp Spring BlazeDS là gì?
- 11. Điểm của việc sử dụng UDP với NIO là gì?
- 12. Việc sử dụng singletonList là gì?
- 13. Trường hợp sử dụng thích hợp cho process.nextTick trong Node.js là gì?
- 14. Lợi thế của việc sử dụng arrayWithCapacity so với việc sử dụng mảng là gì?
- 15. Tầm quan trọng của việc sử dụng Random.setSeed là gì?
- 16. Ưu điểm của việc sử dụng ExecutorService là gì?
- 17. Ưu điểm của việc sử dụng Automapper là gì?
- 18. lợi thế của việc sử dụng giao diện là gì
- 19. Sự khác biệt của việc sử dụng addEventListener là gì?
- 20. Việc sử dụng LOCAL_MODULE_TAGS là gì?
- 21. Ưu điểm của việc sử dụng giao dịch tổng hợp với pgbouncer là gì?
- 22. Việc sử dụng Deployment.Current.Dispatcher.BeginInvoke (() => {...}) là gì?
- 23. Việc sử dụng Indexers là gì?
- 24. việc sử dụng string.Clone() là gì?
- 25. Việc sử dụng window.external là gì?
- 26. Việc sử dụng typedef là gì?
- 27. Việc sử dụng udevadm là gì?
- 28. Việc sử dụng "khoan dung" là gì?
- 29. việc sử dụng thích hợp lệnh execcommand ("dán") trong phần mở rộng của chrome
- 30. Việc sử dụng HeaderedContentControl trong wpf là gì?
câu hỏi này làm cho tôi hạnh phúc tôi đã học MVC :) – fearofawhackplanet