2012-12-21 1 views
1

Comment faire ActiveTabChanged pour TabContainer. J'ai écrit un code pour remplir le TabPanel HeaderText de la base de données et ceci est mon codedynamic ActiveTabChanged pour conteneur AJAX Tab

public partial class dynamicTab : System.Web.UI.Page 
{ 
    string strCon = ConfigurationManager.ConnectionStrings["SqlCon"].ConnectionString.ToString(); 
    TabContainer ajxTab; 

    protected void Page_Load(object sender, EventArgs e) 
    { 
     if (!IsPostBack) 
     { 
      // createTab(); 
      pnlDynamic.Controls.Add(ajxTab); 
      ajxTab_ActiveTabChanged(ajxTab, EventArgs.Empty); 
     } 
    } 

    private void ajxTab_ActiveTabChanged(TabContainer ajxTab, EventArgs eventArgs) 
    { 
     SqlConnection con = new SqlConnection(strCon); 
     SqlCommand cmd = new SqlCommand("select * from Employee where DeptID='" + ajxTab.ActiveTab.ID.ToString() + "'", con); 
     con.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 

     GridView grd = new GridView(); 
     grd.AutoGenerateColumns = true; 
     grd.DataSource = ds; 
     grd.DataBind(); 
     pnlDynamic.Controls.Add(grd); 
    } 

    protected void page_init(object sender, eventargs e) 
    { 
     createtab(); 

    } 

    private void createTab() 
    { 
     SqlConnection con = new SqlConnection(strCon); 
     SqlCommand cmd = new SqlCommand("select DeptID,DepartmentName from Department", con); 
     con.Open(); 
     SqlDataAdapter da = new SqlDataAdapter(); 
     da.SelectCommand = cmd; 
     DataSet ds = new DataSet(); 
     da.Fill(ds); 
     ajxTab = new AjaxControlToolkit.TabContainer(); 
     for (int i = 0; i < ds.Tables[0].Rows.Count; i++) 
     { 
      TabPanel pnl = new TabPanel(); 
      pnl.HeaderText = ds.Tables[0].Rows[i]["DepartmentName"].ToString(); 
      pnl.ID = ds.Tables[0].Rows[i]["DeptID"].ToString(); 
      ajxTab.Tabs.Add(pnl); 
      ajxTab.ActiveTabIndex = 0; 
     } 
    } 
} 

Pour la première fois ActiveTabChanged parfaitement tiré, mais quand je clique sur le deuxième onglet ActiveTabChanged ne reçoit pas tiré. J'ai essayé en définissant ajxTab.AutoPostBack=true mais le conteneur d'onglets n'est pas visible lorsque l'événement se produit.

Ceci est mon exemple de sortie

enter image description here

En cliquant sur les ordinateurs Je voudrais grille charger ces détails si quelqu'un peut me aider

+0

http://stackoverflow.com/questions/811657/setting-active-tab-in-asp-net-ajax-tabcontainer-causes-entire-container-to-disap – GeorgesD

Répondre

0

Vous pouvez lier le contenu de chaque onglet dans la événement OnActiveTabChanged

OnActiveTabChanged = "TabContainer1_ActiveTabChanged" AutoPostBack = "true"

+0

Réglage 'AutoPostBack = "true" 'est désactivant par dynamique' Tabcontainer' – Dotnet

+1

Avez-vous lu cela: http://www.c-sharpcorner.com/uploadfile/Ravish001/create-dynamic-tabs-using-ajax-tab-container-add-controls-read- eux-dynamiquement/ou vous pouvez utiliser javascript http://forums.asp.net/p/1344642/2737009.aspx#2737009 – GeorgesD

+0

Merci cela a fonctionné http://www.c-sharpcorner.com/uploadfile/Ravish001/create- dynamic-tabs-using-ajax-tab-conteneur-add-controls-read-them-dynamic / – Dotnet