[C# WEB] Accessing a dynamically created label in a label array

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • karthik25
    New Member
    • Jul 2008
    • 6

    [C# WEB] Accessing a dynamically created label in a label array

    Hi,

    The following code creates a tab container, 5 tab panels, buttons, labels. I was able to add event handlers to the button. But how am i supposed to access the dynamically created labels? For example how do i get the text of the label changed when the corresponding button is clicked? I have given the complete code below. Please help me with this.

    Code:
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.IO;
    using AjaxControlToolkit;
    
    public partial class Wdg : System.Web.UI.Page
    {
        protected TabContainer tbCon;
        protected TabPanel[] tbPanel;
        protected UpdatePanel[] updPanel;
        protected Label[] lblMessage;
        protected Button[] btnClick;
    
        protected int count;
        private int i;
    
        protected void Page_Load(object sender, EventArgs e)
        {
            count = 5;
    
            tbCon = new TabContainer();
            tbCon.Width = 600;
    
            tbPanel = new TabPanel[count];
            updPanel = new UpdatePanel[count];
            lblMessage = new Label[count];
            btnClick = new Button[count];
    
            for (i = 0; i < count; i++)
            {
                tbPanel[i] = new TabPanel();
                tbPanel[i].HeaderText = "Tab " + i.ToString();
    
                updPanel[i] = new UpdatePanel();
    
                lblMessage[i] = new Label();
                lblMessage[i].Text = "Label " + i.ToString();
                lblMessage[i].ID = "lblMessage" + i.ToString();
    
                btnClick[i] = new Button();
                btnClick[i].Text = "Button " + i.ToString();
                btnClick[i].ID = "btnClick" + i.ToString();
                btnClick[i].Click += new EventHandler(Wdg_Click);
    
                updPanel[i].ContentTemplateContainer.Controls.Add(lblMessage[i]);
                updPanel[i].ContentTemplateContainer.Controls.Add(btnClick[i]);
    
                tbPanel[i].Controls.Add(updPanel[i]);
    
                tbCon.Controls.Add(tbPanel[i]);
            }
    
            form1.Controls.Add(tbCon);
        }
    
        void Wdg_Click(object sender, EventArgs e)
        {
            Button btn = (Button)sender;
    
            StreamWriter s = new StreamWriter(new FileStream("EventLogger.txt", FileMode.Append));
            s.WriteLine("ID is " + btn.ID.ToString());
            s.WriteLine(btn.ID.ToString()[btn.ID.ToString().Length - 1]);
    
    
    	/* How do i modify the contents of the label in this update panel? */
    
            s.Close();
        }
    }
    Thanks
    Karthik
  • karthik25
    New Member
    • Jul 2008
    • 6

    #2
    I found out the solution, thank god!

    Ans:

    Code:
    lblMessage[i - 48].Text = "Clicked";
    I didn't try this at all!

    Comment

    Working...