2009-04-25 5 views
1

einzustellen Ich habe Probleme mit einer Kombination aus UpdatePanel und MultiView.Versucht, Ansicht in UpdatePanel in PageLoad

Ich habe ein UpdatePanel auf meiner obersten Ebene, innerhalb habe ich eine Reihe von Bildbuttons - ihre Click-Ereignisse setzen die Ansicht auf dem Multiview, und jede Ansicht hat ein UpdatePanel darin mit meiner Bindung.

Alles funktioniert gut - aber ich versuche, die Ansicht über die Querystring festlegen, damit ich einen Benutzer zu einer bestimmten Ansicht senden kann.

Wenn ich versuche, die Ansicht von PageLoad zu setzen - es sagt "Objekt existiert nicht". Also dachte ich, ich würde es in Page_LoadComplete versuchen, was großartig funktioniert - aber dann funktionieren meine Bildschaltflächen nicht, um die Ansicht wie ursprünglich zu wechseln.

Was vermisse ich! Vielen Dank!

void Page_LoadComplete() 
    { 
     tabSelect= Request.QueryString["tab"]; 

      if (tabSelect.Contains("Community")) 
      { 
       MultiView1.SetActiveView(Community); 

       btnCommunity.ImageUrl = "images/tabCommunity_on.png"; 

      } 
    } 




<asp:ScriptManager id="ScriptManager1" runat="server"/> 
<asp:UpdatePanel id="UpdatePanel1" childrenastriggers="true" updatemode="Always" runat="server"> 
    <ContentTemplate> 
    <asp:ImageButton id="btnCommunity" onclick="" runat="server"> 

    <asp:MultiView ID="MultiView1" ActiveViewIndex="0" runat="server"> 
     <asp:View ID="Community" runat="server"> 
      <asp:UpdatePanel id="UpdatePanel1" childrenastriggers="true" updatemode="Always" runat="server"> 
      //data controls in here 
      </asp:UpdatePanel> 
     </asp:View> 
     <asp:View id="tabFriends" runat="server"> 
      <asp:UpdatePanel id="UpdatePanel2" childrenastriggers="true" updatemode="Always" runat="server"> 
      //data controls in here 
      </asp:UpdatePanel> 
     </asp:View> 
    </asp:MultiView> 
    </ContentTemplate> 
</asp:UpdatePanel> 

Antwort

1

UPDATE: Nachdem Sie den Code in weiteren Einzelheiten der Überprüfung, ich glaube, das Problem herausgefunden.

Ich habe die folgenden Anpassungen den Code:

  1. Wenn der Abfragezeichenfolgeflag nicht bestanden, setzte tabSelect zu leeren String und somit eine Null-Objekt Referenz Ausnahme in der nächsten Zeile zu vermeiden.

  2. Setzen Sie den ImageUrl-Pfad auf ~ (für root).

Bitte versuchen Sie den Code unten:

void Page_LoadComplete() 
{ 
    string tabSelect = Request.QueryString["tab"] ?? string.Empty; 

    if (tabSelect.Contains("Community")) 
    { 
     MultiView1.SetActiveView(Community); 
     btnCommunity.ImageUrl = "~/images/tabCommunity_on.png"; 
    } 
} 
+0

Gleiche geschieht es als Seite zu laden - es sagt der Ansicht Ich bin Einstellung null ist. Aber das Objekt ist da, ich kann es im Debugger sehen - es ist nur null. – user53885

+0

Lassen Sie mich wissen, ob mein aktualisierter Beitrag den Trick macht. –

Verwandte Themen