2009-08-19 15 views
0

Ich bin gerade dabei, einen MultiViewControl basierten Assistentenprozess für unsere Webanwendung zu überarbeiten. Ich habe eine harte Zeit, um zu versuchen, die Reihenfolge der Ereignisse zu verstehen (Page_Load, Init, Prerender, etc.). Hat jemand da draußen auf den Interwebs Details zum Umgang mit einer dieser Kontrollen? Bitte sag nicht einfach "google". Ich habe das getan und muss noch eine gute, umfassende Seite finden.MultiViewControl Probleme

Zugegeben, ich habe nicht wirklich ausgearbeitet auf die Probleme, die ich bin mit dieser Kontrolle, also werde ich versuchen, das zu tun:

  1. primäre Problem ist die Initialisierung der Benutzersteuerelemente, die in verschiedenen Ansichten leben . In der vorhandenen Codebasis verwendete der Programmierer eine Kombination aus multiviewcontrol.ActiveViewIndex = WHATEVER und Response.Redirect ("PageWithMultiView.aspx? Nextstep") und es machte alles sehr kompliziert. Meine Aufgabe besteht darin, zu versuchen, die Response.Redirect-Aufrufe zu entfernen und nur die Einstellung des ActiveViewIndex zu verwenden. Ist das überhaupt möglich? Außerdem gibt es einige Fälle, in denen ich ein Steuerelement in einer bestimmten Ansicht nur beim erstmaligen Laden und nicht bei nachfolgenden Postbacks initialisieren muss. Ich kann etwas wie das IsPostBack-Flag verwenden, aber das wird nur beim ersten Laden auf false gesetzt. Nachfolgendes Neuladen von IsPostBack == true. Ich möchte grundsätzlich IsPostBack für die anfängliche Auslastung jeder Ansicht auf false festgelegt haben. Kann dies getan werden, ohne eine Response.Redirect auf sich selbst zu machen?

Hoffentlich wird dies für jemanden da draußen einen Sinn ergeben.

Danke. Greg.

Antwort

0

ich eine harte Zeit habe versucht, Sinn der Bestellung, dass die Ereignisse geschehen (Page_Load, Init, Prerender, etc).

Hier haben Sie alle Details über ASP.NET Seite Lebenszyklus und Ereignisse: http://msdn.microsoft.com/en-us/library/ms178472.aspx.

In Bezug auf MultiView - Sie sollten NIEMALS Response.Redirect verwenden, wenn Sie mit MultiView arbeiten.

Wenn der Benutzer nicht zur vorherigen Ansicht wechseln kann, können Sie den vorherigen ActiveViewIndex-Wert überprüfen, bevor Sie ihn auf den neuen Wert setzen, z.

if (mv.ActiveViewIndex != newIndex) 
{ 
    // this view is displayed for the first time 
} 

Wenn der Benutzer der vorherigen Ansichten wechseln, schlage ich vor, um eine Information über bereits verwendete Ansichten in der Sitzung zu setzen oder durch verstecktes Feld mit IDs der Ansichten auf dem Formular platzieren, die bereits angezeigt wurden und zu verwenden, dass Informationen statt IsPostBack.