2009-04-29 8 views
1

Ich mache eine asp.net-Anwendung mit einer Seite. Auf dieser Seite habe ich einen usercontrol definiert. Diese Benutzersteuerung hat ein Menü (drei Tasten) und 3 Benutzerkontrollen definiert. Abhängig von der angeklickten Schaltfläche wird einer der drei Benutzerkontrol- len zu "Wahr" oder "Falsch".Wie Postback in verschachtelten Benutzersteuerelementen zu simulieren?

In diesen drei Benutzersteuerungen habe ich eine Schaltfläche und eine Nachricht, und ich möchte die Nachricht "Es ist kein Postback" zeigen, wenn die Schaltfläche des Menüs angeklickt wird, und wenn die Schaltfläche der Benutzersteuerung angeklickt wird, wird die Nachricht "JA, es ist Postback !!!".

Die Frage ist, dass mit der Eigenschaft "IsPostBack" der Benutzersteuerung oder der Seite die Nachricht wird nie "Es ist nicht Postback" wegen der angeklickten Schaltfläche des Menüs, um die verschachtelte Benutzersteuerung anzuzeigen.

Dies ist die Struktur der Seite:

page 
    parent usercontrol 
    menu 
    nested usercontrol 1 
     message 
     button 
    nested usercontrol 2 
    nested usercontrol 3 

Ich weiß, es getan Viewstate verwendet werden kann, aber gibt es eine Möglichkeit, IsPostBack Eigenschaft oder wissen zu simulieren, wenn der wahre Usercontrol Postback?

Danke.

Antwort

0

Ich habe die Lösung für dieses Problem. Wenn ein Element ausgelöst wird, wird ein Ereignis an den Server in der Request.Form-Auflistung gesendet. Daher habe ich in geschachtelten Benutzersteuerelementen eine Eigenschaft erstellt, die überprüft, ob ein untergeordnetes Steuerelement in der Request.Form-Auflistung vorhanden ist:

public bool IsUserControlPostBack 
    { 
     get 
     { 
      foreach (Control c in Controls) 
       foreach(string key in Page.Request.Form.AllKeys) 
        if(c.ClientID == key.Replace('$','_')) 
         return true; 

      return false; 
     } 
    } 

Dieser Code kann eine Eigenschaft des Benutzersteuerelements sein oder, wenn es häufig aufgerufen wird, eine Variable, die für das OnInit-Ereignis des Benutzersteuerelements festgelegt wird.

Verwandte Themen