Tôi có một trang khá phức tạp tự động xây dựng các điều khiển người dùng bên trong bộ lặp. Bộ lặp này phải bị ràng buộc trong sự kiện trang Init trước khi ViewState
được khởi tạo hoặc các điều khiển người dùng được tạo động sẽ không giữ lại trạng thái của chúng.Bạn sẽ làm gì khi không thể sử dụng ViewState?
Điều này tạo ra một Catch-22 thú vị bởi vì đối tượng tôi liên kết bộ lặp cần phải được tạo trên tải trang ban đầu, và sau đó tiếp tục tồn tại trong bộ nhớ cho đến khi người dùng chọn thoát hoặc lưu.
Vì tôi không thể sử dụng ViewState
để lưu trữ đối tượng này, nhưng đã có sẵn trong Init, tôi đã bị buộc phải lưu trữ nó trong phiên.
Điều này cũng có vấn đề, bởi vì tôi phải vô hiệu hóa giá trị phiên trong thời gian không đăng lại để mô phỏng cách hoạt động của ViewState
.
Có một cách tốt hơn để quản lý trạng thái trong trường hợp này. Bất kỳ ý tưởng?
Chỉnh sửa: Một số gợi ý hay về cách sử dụng LoadViewState
, nhưng tôi vẫn gặp sự cố với trạng thái không được khôi phục khi tôi làm điều đó.
Đây là phần nào nếu cấu trúc trang
Trang -> UserControl -> Repeater -> N lượng UserControls dynamicly tạo.
Tôi đặt ghi đè LoadViewState
trong phụ huynh UserControl
vì thiết kế được đóng gói hoàn toàn và độc lập với trang đang bật. Tôi tự hỏi nếu đó là nơi mà vấn đề là.
Bạn đang sử dụng databinding? Tôi không bao giờ sử dụng nó với asp.net và nó có thể thay đổi lĩnh vực chơi một chút. Tuy nhiên, LoadViewState là sự kiện sẽ được sử dụng để khôi phục các điều khiển động ở thời gian sau. PageLoad chắc chắn là quá muộn trong vòng đời. – DancesWithBamboo