简体   繁体   English

如何在asp.net页中查找标签控件

[英]How to find label controls in an asp.net page

I have some label controls in a panel with id ResultsPanel . 我在ID为ResultsPanel的面板中有一些标签控件。 To find the label controls on the page, I did the following: 要在页面上找到标签控件,我执行了以下操作:

for (int ctr = 0; ctr < lblString.Length - 1; ctr++)
{
    //string labelID = string.Format("lblResult{0}", ctr);
    int mylbl = ctr + 1;
    string lblResult = ((Label)ResultsPanel.FindControl("lblResult" + mylbl.ToString())).Text;
    lblResult = lblString[mylbl].ToString();
}
lblResult1.Text = lblString.ToString();

lblString is a stringBuilder Object with 24 numbers. lblString是一个具有24个数字的stringBuilder对象。 The Idea is to map each of the numbers in the stringbuilder object to labels in this manner: 想法是通过这种方式将stringbuilder对象中的每个数字映射到标签:

lblResult1.Text = lblString[mylbl].ToString(); to the 24th label. 到第24个标签。 But I can't seem to generate the labels and map the values to the label control. 但是我似乎无法生成标签并将值映射到标签控件。

Change the line to 将行更改为

Label lblResult = ((Label)ResultsPanel.FindControl("lblResult" + mylbl.ToString()));
        lblResult.Text = lblString[mylbl].ToString();

Your question and code are a bit misleading, but I will try my best anyway. 您的问题和代码有点误导,但我还是会尽力而为。

Your code: 您的代码:

for (int ctr = 0; ctr < lblString.Length - 1; ctr++)
{
    //string labelID = string.Format("lblResult{0}", ctr);
    int mylbl = ctr + 1;
    string lblResult = ((Label)ResultsPanel.FindControl("lblResult" + mylbl.ToString())).Text;
    lblResult = lblString[mylbl].ToString();
}

lblResult1.Text = lblString.ToString();

If you have labels in the order of label1, label2, label3 ... then I would write something like this: 如果您具有按label1,label2,label3的顺序排列的标签,那么我将编写如下内容:

private void MapLabels()
{
    var labelsResult = string.Empty;
    var labelString = "123456789";
    for (int i = 0; i < labelString.Length; i++)
    {
        var control = this.FindControl("label" + labelString[i]);
        if(control != null)
        {
            labelsResult += ((Label)control).Text;
        }
    }

    labelResult1.Text = labelsResult;
}

Let me know if you get stuck. 让我知道您是否被卡住。

Hope this will help you. 希望这会帮助你。 Like this you can get the value of label too. 这样,您也可以获取标签的值。

public void GetControlsValuePopulated(Control control, Type controlType, Dictionary<string, string> dictControlPageValParam)
{
    try
    {

        if (control.HasControls())
        {
            GetControlsValuePopulated(control, controlType, dictControlPageValParam);
        }
        else
        {
            if (controlType == null || controlType.IsAssignableFrom(control.GetType()))
            {
                if (control.ID != null)
                {
                    bool FoundControl = dictControlPageValParam.ContainsKey(control.ID.Substring(3));
                    if (FoundControl)
                    {
                        switch (control.GetType().ToString())
                        {
                            case "System.Web.UI.WebControls.TextBox":
                                TextBox txt = (TextBox)control;
                                txt.Text = dictControlPageValParam[txt.ID.Substring(3)];
                                break;

                            case "System.Web.UI.WebControls.CheckBox":
                                CheckBox chk = (CheckBox)control;
                                if (dictControlPageValParam[chk.ID.Substring(3)].ToUpper() == "TRUE" || dictControlPageValParam[chk.ID.Substring(3)].ToUpper() == "T")
                                {
                                    chk.Checked = true;
                                }
                                else
                                {
                                    chk.Checked = false;
                                }
                                break;

                            case "System.Web.UI.WebControls.DropDownList":
                                DropDownList ddl = (DropDownList)control;
                                //ddl.SelectedValue = dictControlPageValParam[ddl.ID.Substring(3)];
                                break;

                            case "System.Web.UI.WebControls.RadioButtonList":
                                RadioButtonList rbl = (RadioButtonList)control;
                                rbl.SelectedValue = dictControlPageValParam[rbl.ID.Substring(3)];
                                break;

                            case "System.Web.UI.WebControls.HiddenField":
                                HiddenField hdn = (HiddenField)control;
                                hdn.Value = dictControlPageValParam[hdn.ID.Substring(3)];
                                break;
                        }
                    }
                }

            }
        }
    }
    catch (Exception)
    {
        throw;
    }
}

public void GetChildControlsId(Control control, Type controlType)
{
    try
    {

        if (control.HasControls())
        {
            GetChildControlsId(control, controlType);
        }
        else
        {
            if (controlType == null || controlType.IsAssignableFrom(control.GetType()))
            {
                ///checking if control already existing in the collection
                if (control.ID != null)
                {
                    bool FoundControl = controlHt.ContainsKey(control.ID);

                    if (!FoundControl)
                    {
                        switch (control.GetType().ToString())
                        {
                            case "System.Web.UI.WebControls.TextBox":
                                TextBox txt = (TextBox)control;
                                controlTypeName = txt.ID;
                                controlTypeName = controlTypeName.Substring(3);
                                controlTypeValue = txt.Text;
                                if (dictControlValParam.ContainsKey(controlTypeName) == false)
                                {
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                else
                                {
                                    dictControlValParam.Remove(controlTypeName);
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                break;


                            case "System.Web.UI.WebControls.CheckBox":
                                CheckBox chk = (CheckBox)control;
                                controlTypeName = chk.ID;
                                controlTypeName = controlTypeName.Substring(3);
                                controlTypeValue = chk.Checked.ToString();
                                if (dictControlValParam.ContainsKey(controlTypeName) == false)
                                {
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                else
                                {
                                    dictControlValParam.Remove(controlTypeName);
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                break;
                            case "System.Web.UI.WebControls.DropDownList":
                                DropDownList ddl = (DropDownList)control;
                                controlTypeName = ddl.ID;
                                controlTypeName = controlTypeName.Substring(3);
                                controlTypeValue = ddl.SelectedValue.ToString();
                                if (dictControlValParam.ContainsKey(controlTypeName) == false)
                                {
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                else
                                {
                                    dictControlValParam.Remove(controlTypeName);
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                break;
                            case "System.Web.UI.WebControls.RadioButtonList":
                                RadioButtonList rbl = (RadioButtonList)control;
                                controlTypeName = rbl.ID;
                                controlTypeName = controlTypeName.Substring(3);
                                controlTypeValue = rbl.SelectedValue.ToString();
                                if (dictControlValParam.ContainsKey(controlTypeName) == false)
                                {
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                else
                                {
                                    dictControlValParam.Remove(controlTypeName);
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                break;

                            case "System.Web.UI.WebControls.HiddenField":
                                HiddenField hdn = (HiddenField)control;
                                controlTypeName = hdn.ID;
                                controlTypeName = controlTypeName.Substring(3);
                                controlTypeValue = hdn.Value;
                                if (dictControlValParam.ContainsKey(controlTypeName) == false)
                                {
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                else
                                {
                                    dictControlValParam.Remove(controlTypeName);
                                    dictControlValParam.Add(controlTypeName, controlTypeValue);
                                }
                                break;
                        }

                    }

                }

            }
        }
    }
    catch (Exception)
    {
        throw;
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM