Tôi đã thực hiện một số nghiên cứu liên quan đến điều khiển động và ViewState.Tại sao các điều khiển ASP.NET động có thể giữ ViewState ngay cả khi được thêm vào Page_Load?
Và tôi đọc rằng để giữ cho ViewState cho điều khiển động, bạn phải thêm nó vào sự kiện Page_Init. Điều này có ý nghĩa bởi vì PageLifeCycle là:
- Khởi tạo.
- LoadViewState.
- LoadPostbackData.
- Tải.
- RaisePostbackEvent.
- SaveViewState.
- Render.
Nhưng tôi đã thực hiện một ứng dụng thử nghiệm và tôi thấy rằng giá trị ViewState và thuộc tính được giữ nguyên ngay cả khi tôi thêm điều khiển trong sự kiện Page_Load chứ không phải sau đó. Từ này tôi chỉ tìm thấy thông tin mâu thuẫn. Một số người nói rằng các điều khiển có thể bắt được PageLifeCycle khác nói rằng bạn phải thêm chúng trong Page_Init. Ai đó có thể làm rõ điều này cho tôi?
Cũng trong MSDN tôi thấy:
Lưu ý Bạn có thể nhận được ngay với tải điều khiển của bạn trong xử lý sự kiện Page_Load và duy trì trạng thái điểm đúng cách. Nó tất cả phụ thuộc vào việc bạn có đang thiết lập bất kỳ thuộc tính nào của điều khiển được nạp động theo lập trình hay không và nếu có, thì bạn đang làm việc đó tương ứng với dòng Controls.Add (dynamicControl). Một cuộc thảo luận kỹ lưỡng về vấn đề này là một chút ngoài phạm vi của bài viết này, nhưng lý do nó có thể hoạt động là vì phương thức Add() của thuộc tính Điều khiển đệ quy tải trạng thái xem của cha mẹ vào con của nó, thậm chí . giai đoạn đã trôi qua.
Nhưng tôi thực sự không hiểu điều này hoàn toàn vì vậy tôi hy vọng ai đó có thể giải thích. Cảm ơn bạn trước.