Mam stronę .aspx C#/ASP.NET, która deklaruje dwie kontrolki, z których każda reprezentuje zawartość jednej karty. Chcę, aby argument łańcucha zapytania (np.? Tab = 1) określił, która z dwóch formantów jest aktywowana. Mój problem polega na tym, że obydwa przechodzą przez zdarzenia inicjujące i zapełniają swoje kontrole podrzędne, marnując zasoby procesora i spowalniając czas odpowiedzi. Czy da się je jakoś dezaktywować, aby nie przechodziły przez żadną inicjalizację?Jak zadeklarować C# użytkownika sieci Web, ale zatrzymać go od inicjowania?
Moja .aspx strona wygląda tak:
<% if (TabId == 0)
{ %>
<my:usercontroltabone id="ctrl1" runat="server" />
<% }
else if (TabId == 1)
{ %>
<my:usercontroltabtwo id="ctrl2" runat="server" />
<% } %>
I ta część działa dobrze. Zakładam, że ten <% oznaczałoby, że kontrola nie zostanie faktycznie zadeklarowana, a więc nie zainicjowałaby, ale to nie jest tak ...
Zgadzam się, że kod spaghetti musi iść. Logika powinna pozostać w kodzie, aby zachować rzeczy obiektowe. – Daniel
W ten sposób działa dobrze, zastrzeżenie jest w zależności od stanu wyświetlania. Tryb wyświetlania nie jest ładowany automagicznie na dynamicznie dodawanych kontrolkach. –
@Chuck: Jeśli moja pamięć służy mi dobrze (minęło trochę czasu, odkąd dużo pracowałem przy użyciu formularzy internetowych), to naprawdę zależy od * kiedy * formanty są załadowane. Uważam, że ładowanie w 'Page_Init' zamiast w' Page_Load' rozwiązuje (większość) problemów z widokiem. –