Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to loop through some ASP.NET labels to set their attributes?

How do I do this in a loop.

protected void ddlTool_SelectedIndexChanged(object sender, EventArgs e)
{

    lblTool1.Visible = false;
    txtTool1.Visible = false;
    lblTool2.Visible = false;
    txtTool2.Visible = false;
    lblTool3.Visible = false;
    txtTool3.Visible = false;
    lblTool4.Visible = false;
    txtTool4.Visible = false;
    lblTool5.Visible = false;


    if (ddlTool.SelectedValue == "1")
    {
        lblTool1.Visible = true;
        txtTool1.Visible = true;
    }
    if (ddlTool.SelectedValue == "2")
    {
        lblTool1.Visible = true;
        txtTool1.Visible = true;
        lblTool2.Visible = true;
        txtTool2.Visible = true;
    }
    if (ddlTool.SelectedValue == "3")
    {
        lblTool1.Visible = true;
        txtTool1.Visible = true;
        lblTool2.Visible = true;
        txtTool2.Visible = true;
        lblTool3.Visible = true;
        txtTool3.Visible = true;
    }
    if (ddlTool.SelectedValue == "4")
    {
        lblTool1.Visible = true;
        txtTool1.Visible = true;
        lblTool2.Visible = true;
        txtTool2.Visible = true;
        lblTool3.Visible = true;
        txtTool3.Visible = true;
        lblTool4.Visible = true;
        txtTool4.Visible = true;
    }
like image 651
sydney wynn Avatar asked Nov 25 '25 21:11

sydney wynn


1 Answers

Instead of having a separate variable for each textbox and label, have a collection of them - whether that's a List<T> or an array or whatever.

Then you can do:

// Potentially use int.TryParse here instead
int visibleLabels = int.Parse(ddlTool.SelectedValue);
for (int i = 0; i < labels.Count; i++)
{
    labels[i].Visible = (i < visibleLabels);
    textBoxes[i].Visible = (i < visibleLabels);
}

(Alternatively use two loops, one to set some Visible properties to true, and one to set some to false.)

like image 174
Jon Skeet Avatar answered Nov 28 '25 09:11

Jon Skeet



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!