Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retrieving values from dynamically created controls Label in asp .net

Tags:

c#

asp.net

I have created Label controls dynamically on button click:

protected void createDynamicLabels_Click(object sender, EventArgs e)
{
    int n = 5;
    for (int i = 0; i < n; i++)
    {
        Label MyLabel = new Label();
        MyLabel.ID = "lb" + i.ToString();
        MyLabel.Text = "Labell: " + i.ToString();
        MyLabel.Style["Clear"] = "Both";
        MyLabel.Style["Float"] = "Left";
        MyLabel.Style["margin-left"] = "100px";

        Panel1.Controls.Add(MyLabel);
    }
}

When I tried to read back fro another button I see Label Control returned null

Label str = (Label)Panel1.FindControl("lb" + i.ToString());

not sure what went wrong here

protected void bReadDynValue_Click(object sender, EventArgs e)
{

  int n = 5;
    for (int i = 0; i < n; i++)
    {
        Label str = (Label)Panel1.FindControl("lb" + i.ToString());
        lbGetText.Text = str.Text;
    }


}
like image 443
Ashok Avatar asked Feb 13 '26 02:02

Ashok


1 Answers

this is the issue of every time page load event. ASP.net fire every time page load event when any button is click.

suppose in this example..

protected void Page_Load(object sender, EventArgs e)
{

    if(!IsPostBack)
        createDynamicLabels();
}


private void createDynamicLabels()
    {
        int n = 5;
        for (int i = 0; i < n; i++)
        {
            Label MyLabel = new Label();
            MyLabel.ID = "lb" + i.ToString();
            MyLabel.Text = "Labell: " + i.ToString();
            MyLabel.Style["Clear"] = "Both";
            MyLabel.Style["Float"] = "Left";
            MyLabel.Style["margin-left"] = "100px";

            Panel1.Controls.Add(MyLabel);


        }
    }

protected void bReadDynValue_Click(object sender, EventArgs e)
{

    int n = 5;
    for (int i = 0; i < n; i++)
    {
        Label str = (Label)Panel1.FindControl("lb" + i.ToString());
        lbGetText.Text = str.Text;
    }


}

when Button trigger Page doesn't have any label because it is made on runtime. and Page doesn't find particular label. if you tried above code it is run properly.

 protected void Page_Load(object sender, EventArgs e)
{

        createDynamicLabels();
}


private void createDynamicLabels()
    {
        int n = 5;
        for (int i = 0; i < n; i++)
        {
            Label MyLabel = new Label();
            MyLabel.ID = "lb" + i.ToString();
            MyLabel.Text = "Labell: " + i.ToString();
            MyLabel.Style["Clear"] = "Both";
            MyLabel.Style["Float"] = "Left";
            MyLabel.Style["margin-left"] = "100px";

            Panel1.Controls.Add(MyLabel);


        }
    }

protected void bReadDynValue_Click(object sender, EventArgs e)
{

    int n = 5;
    for (int i = 0; i < n; i++)
    {
        Label str = (Label)Panel1.FindControl("lb" + i.ToString());
        lbGetText.Text = str.Text;
    }


}

in this Example code find label every time because every time it can make labels for this page.

like image 135
Faraz Ahmed Avatar answered Feb 15 '26 15:02

Faraz Ahmed



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!