2014-01-06 47 views
1

在一個tabcontainer我希望顯示各種選項卡將包含不同的用戶控件。 我需要通過代碼來指定用戶控件的標籤,而不是分配用戶控件作爲其通常在標籤內進行,例如:動態創建TABCONTAINER與ajax ASP.NET

<ajaxToolkit:TabPanel runat="server" HeaderText="NOMBRE" ID="TabPanel1" Enabled ="true" > 
    <ContentTemplate> 

    </ContentTemplate> 
</ajaxToolkit:TabPanel> 

我需要什麼,這並不工作。

因此,這裏是我的代碼的標籤分配給用戶控件,它的代碼休耕:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     Control ctrlNombre = LoadControl("~/UserCtrl/Nombre.ascx"); //user control 
     TabPanel1.Controls.Add(ctrlNombre); //add user control to tabpanel  
    } 
} 

和「onactivetabchanged」創建取決於一個菜單上的選項卡處於活動狀態的情況下,這將加載控件,這裏是代碼:

protected void TabContainer1_ActiveTabChanged(object sender, EventArgs e) 
{ 
    switch(TabContainer1.ActiveTabIndex) 
    { 
     case 0: 
      Control ctrl1 = LoadControl("~/UserCtrl/userControl1.ascx"); 
      TabPanel1.Controls.Add(ctrlNombre); 
      break; 
      case 1: 
      Control ctrl2 = LoadControl("~/UserCtrl/ userControl2.ascx"); 
      TabPanel1.Controls.Add(ctrlApPaterno); 

    } 
} 

然而,這實際上做的工作,當我從一些用戶控件中單擊某個按鈕時出現問題,這使得一個完整的回發到服務器,因爲它會通常會這樣做,但是這個回帖會導致用戶繼續之前加載的rol消失。我能做些什麼來解決這個問題?我真的很希望有人會幫助我,我會很感激。

這裏是當我點擊一個按鈕,會發生什麼情況的圖像: Image

謝謝你這麼多,大家好,我希望有人能幫助我解決這個問題。

回答

0

後,可能需要回傳,因爲他們已經做出,直到不上後背上存在tabpanels發生在Page_init重新標籤面板...

所以在Page_init你應該調用一個函數,使默認選項卡集合,然後在頁面上,您可以將新選項卡面板添加到集合。

protected void Page_Init(object sender, EventArgs e) 
{ 
    Control ctrlNombre = LoadControl("~/UserCtrl/Nombre.ascx"); //user control 
    TabPanel1.Controls.Add(ctrlNombre); //add user control to tabpanel 
} 

參見:

http://dorababu-meka.blogspot.com/2012/12/create-dynamical-ajax-tab-and-filling.html http://www.c-sharpcorner.com/uploadfile/Ravish001/create-dynamic-tabs-using-ajax-tab-container-add-controls-read-them-dynamically/

希望這是有道理的。

+0

我會嘗試您提供的其中一個鏈接,如果它幫助我解決了這個問題,它將會更新您的鏈接,感謝您編輯我的文章,非常感謝。 – ReneDev