Jak mogę ponownie utworzyć dynamiczne formanty użytkownika ASP.NET bez korzystania z bazy danych?

Obecnie pracuję z częścią mojej aplikacji, która korzysta z dynamicznych elementów sterowania użytkownikami sieci Web i mam trochę kłopotów z odgadnięciem najlepszego sposobu ponownego utworzenia instancji formantów na postback przy użyciu ViewState lub innej metody, która nie działa wymagaj ode mnie zapytania o bazę danych przy każdym zgłoszeniu zwrotnym.

Zasadniczo to, co mam na mojej stronie, to formant użytkownika, który zawiera panel do przechowywania zmiennej ilości elementów sterujących dla dzieci oraz przycisk, który mówi „Dodaj kontrolę”, którego funkcja jest całkiem oczywista.

Kontrola użytkownika podrzędnego jest dość prosta; to tylko przycisk usuwania, rozwijany i kontroler wyboru czasu ułożone w rzędzie. Za każdym razem, gdy użytkownik kliknie przycisk Dodaj kontrolę na kontrolce nadrzędnej, do panelu zawierającego kontrolki podrzędne zostanie dodany nowy „wiersz”.

Chciałbym móc dodawać i usuwać elementy sterujące do tej kolekcji, modyfikować wartości i wykonywać dowolne operacje, które muszę wykonać „w pamięci”, bez konieczności wykonywania żadnych połączeń z bazą danych. Gdy dodam formanty i zapełnię ich wartości, chciałbym kliknąć „zapisz”, aby zapisać / zaktualizować wszystkie dane z formantów do bazy danych jednocześnie. Obecnie jedynym rozwiązaniem, które znalazłem, jest po prostu zapisanie danych w bazie danych każdego posta z powrotem, a następnie użycie wierszy przechowywanych w db, aby ponownie utworzyć instancję formantów na postback. Oczywiście zmusza to użytkownika do zapisania zmian w bazie danych wbrew ich woli, aw przypadku, gdy chcą anulować pracę z kontrolkami bez zapisywania ich danych, należy wykonać dodatkową pracę, aby upewnić się, że wcześniej zatwierdzone wiersze zostaną usunięte.

Z tego, czego dowiedziałem się o używaniu dynamicznych elementów sterujących, wiem, że najlepiej jest dodawać formanty do strony na etapie początkowym cyklu życia, a następnie wypełniać ich wartości na etapie ładowania. Nauczyłem się również, że jedynym sposobem, aby upewnić się, że można utrzymać status kontrolny kontrolki, jest upewnienie się, że każdemu dynamicznemu sterowaniu nadano unikalny identyfikator i należy przypisać mu dokładnie ten sam identyfikator podczas tworzenia instancji formantu. Dowiedziałem się również, że ViewState w rzeczywistości nie jest ładowany dopiero po etapie Init w cyklu życia. Tu leży mój problem. W jaki sposób mogę przechowywać i pobierać nazwy tych kontrolek, jeśli nie mogę korzystać z widoku i nie chcę wykonywać żadnych połączeń z bazą danych? Czy ten rodzaj manipulacji w pamięci / zapisywania partii wartości jest możliwy nawet przy użyciu ASP.net?

Każda pomoc jest bardzo mile widziana,

Mikrofon

questionAnswers(3)

yourAnswerToTheQuestion