Your Privacy Matters: We use our own and third-party cookies to improve your experience on our website. By continuing to use the website we understand that you accept their use. Cookie Policy
20
Programatically Add Controls to a Tab
posted

Hi

I need to dinamically add new tabs to a WebTab controls, and inside each tab add a custom Repeater Control, how can i do it?

Regards....

Parents
  • 24497
    Suggested Answer
    posted

    Hi Daniel,

    The tabs which are used by WebTab are instances of Control, so you may add dynamic controls directly to them. The only thing you should keep in mind, that dynamically added tabs will persist but their content is not, because dot-net does not support persistance of controls, but only their view states. So, dynamic controls should be added in every postback by exactly same logic with exactly same IDs.
    Besides explicit controls you also may use UserControlUrl property of tab item, or load user control explicitly.
    Below is example for you:

    protected void Page_Load(object sender, EventArgs e)
    {
      if (!this.IsPostBack)
      {
       for(int i = 0; i < 3; i++)
       {
        Infragistics.Web.UI.LayoutControls.ContentTabItem tab = new Infragistics.Web.UI.LayoutControls.ContentTabItem();
        tab.Text = "Tab" + (i + 1);
        this.WebTab1.Tabs.Add(tab);
       }
      }
      int tabs = this.WebTab1.Tabs.Count;
      while (tabs-- > 0)
       this.FillTab(this.WebTab1.Tabs[tabs], tabs);
    }
    private void FillTab(Infragistics.Web.UI.LayoutControls.ContentTabItem tab, int index)
    {
      if(index == 0 || index == 2)
      {
       TextBox tb = new TextBox();
       tb.ID = "TextBoxOnTab" + index;
       tb.Text = "initial text " + (index + 1);
       tab.Controls.Add(tb);
      }
      if(index == 1)
      {
       Button but = new Button();
       but.ID = "ButtonOnTab" + index;
       but.Text = "Button on Tab " + (index + 1);
       tab.Controls.Add(but);
      }
      Repeater repeater = new Repeater();
      repeater.ID = "repeaterOnTab" + index;
      //repeater.DataSourceID = "AccessDataSource1";
      //BuildTemplateMethod builder = new BuildTemplateMethod(BuildControl);
      //CompiledTemplateBuilder template = new CompiledTemplateBuilder(builder);
      //repeater.ItemTemplate = template;
      tab.Controls.Add(repeater);
      //repeater.DataBind();
    }

Reply Children
No Data