2010-12-29 11 views
0

ich arbeite an einem Projekt.aber ich habe ein Problem.basisch, ich benutze ajaxtoolkit tabcontainer.assume, dass ich 2 Tabs haben, die ich erstellt.lets nennen sie tab1, tab2.in tab1 gibt es eine Schaltfläche und textbox.wenn ich auf die Schaltfläche klicke, schreibe ich etwas Text in die Textbox. Dann erstelle ich eine Registerkarte dynamisch. Ich nehme an, dass es "tab3" heißt. Das Problem ist, wenn ich auf die Schaltfläche in der Registerkarte klicken, Tab3 diappearing .wie kann ich das verhindern?Ajaxtoolkit Postback Problem

<asp:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0" AutoPostBack="true" 
     Height="273px" Width="1050px"> 
     <asp:TabPanel runat="server" HeaderText="tab1" ID="tab1">  
    <ContentTemplate> 


tab2

hier ist, wo ich eine neue Registerkarte in der Funktion am Zusatz:

 AjaxControlToolkit.TabPanel tp = new AjaxControlToolkit.TabPanel(); 
     tp.HeaderText = "tab3"; 
     tp.ContentTemplate = Page.LoadTemplate("WebUserControl1.ascx"); 
     tp.ID = "tab3"; 
     TabContainer1.Tabs.Add(tp); 

Der HTML-Teil ist: part:blahblahblahblah

+0

Können Sie etwas Code posten? – Chandu

Antwort

1

Wenn Sie mit dynamischen Steuerelementen arbeiten, müssen Sie sie nach jedem Postback erneut hinzufügen. Ich empfehle Ihnen, Ihre dynamisch hinzugefügten Steuerelemente in ViewState zu speichern und eine Methode zu schreiben, die die Informationen aus ViewState abruft und Ihre Registerkarten hinzufügt. Rufen Sie dann diese Methode von Page_Init auf.

+0

ich habe die idee.thank you für die empfehlung.wirklich! – Ktl

+0

Nun, ich habe versucht, das zu tun.wenn ich auf eine Schaltfläche geklickt habe, habe ich eine neue Registerkarte erstellt. Und ich habe es in viewstate.but in page_load Methode, kann ich es nicht abrufen.hier ist der Code: – Ktl

+0

AjaxControlToolkit.TabPanel tp = neue AjaxControlToolkit .TabPanel(); tp.HeaderText = "Tab1"; tp.ContentTemplate = Page.LoadTemplate ("WebUserControl1.ascx"); tp.ID = "tab1"; ViewState ["tab1"] = tp; TabContainer1.Tabs.Add (tp); //Page.RegisterStartupScript("meinescript ", javaScript); TabContainer1.ActiveTab = TabContainer1.Tabs [4]; TabContainer1.ActiveTab.Visible = true; – Ktl