reihenfolge: controls erstellen, events, (lifecycle)



  • hallo,

    ich habe ein problem mit der .net "philosophie".
    problemstellung:
    ich versuche eine Seite anzuzeigen, die aus dynamischen controls besteht (ascx-seiten)
    je nach berechtigung des eingeloggten user, sieht man mehr/weniger controls.

    soweit ich verstanden habe muss ich meine controls der seite hinzufügen, BEVOR die events abgearbeitet werden.
    beispiel:ich drücke einen "anmelde"-button, um mich einzuloggen(name password eingegeben). die seite wird submitted, und die nächste gestartet.
    nun muss ich die controls der seite hinzufügen (bevor die event bearbeitet werden), denn sonst werden die events nicht gestartet.
    danach wird das event abgearbeitet (anmelde-submit-button gedrückt)
    . und nun sieht man schon das problem: Bevor ich mich angemeldet habe muss ich die controls erstellen, aber ich weiss ja nicht welche, da je nach user unterschiesliche controls geladen werden.
    klar man könnte ein redirect ausführen, doch so gehen wieder alle variablen verloren (viewstate).

    gibts ein workaround oder andere tipps??

    ich hoffe, ich habe mich einigermassen verständlich ausgedrückt. ich kanns auch gerne wieter erläutern.

    danke rene...



  • Gabs dafür nicht irgendwie was mit DoEvent() damit die Event weiter abgearbeitet werden können?

    [EDIT:] Könntest nicht vielleicht einfach die Steuerelemente alle erstellen, aber auf Invisible stellen. Und was hindert dich auch daran die Steuerelemente nachdem erstellen zu verschieben. D.h. du könntest alle Steuerelemente erstellen, vielleicht auf einer "Parkposition" in der Anwendung platzieren. Nach dem Anmelden könntest du dann die benötigten Steuerelemente zurückschieben und dann sichtbar schalten.

    Was auch noch denkbar wäre. Einen Modalen Dialog vorzuschalten, für die Anmeldung. Und über die Dialogklasse kannste dann im restlichen Programm die Daten abrufen, und entsprechend deinen Dialog aufbauen. Vielleicht hat dir das im Gegensatz zu meinem ersten Ansatz weitergeholfen.

    Jetzt habe ich nochmal im Buch nachgelesen. Ich zetiere mal "Die Anweisung Application.DoEvents() tut nichts anderes, als es Windows zu ermöglichen, die noch anstehenden Nachrichten zu verarbeiten."[:EDIT]



  • hmm, die doEvents-Methode kann ich nicht aufrufen (weil das eine Web-Application ist)
    aber die controls auf invisible stellen, muss ich mal ausprobieren.

    danke
    rene...



  • hmm, ich bin auf jeden fall ein kleines stück weiter, jedoch existiert das selbe problem immernoch.
    erläuterung an einem beispiel:

    1. PageLoad
      * ALLE Controls der Seite laden
      z.b. Control: Eigene Userdaten bearbeiten
      (hier werden die Userdaten des "unangemeldeten Users angezeigt", ( ich gehe jetzt mal davon aus, das dies ok ist)

    2. Events abarbeiten:
      * z.b. Login-Button
      -> Userdaten ändern sich durch das login.

    3. Controls ohne berechtigung ausblenden.

    bei diesem beispiel sehe ich nun als eigeloggter user X nicht meine Userdaten, sondern die von User Y (unangemeldet)

    ich muss das control aber auf jeden fall VOR den events komplett erstellen (mit allen nötigen webcontrols (z.b. checkboxen)), damit beim submit auch die events gestartet werden.

    oder sehe ich was falsch??

    danke rene...


Anmelden zum Antworten