找到PlaceHolder另一个PlaceHolder

时间:2016-02-15 12:21:11

标签: c# .net dynamic controls

我有一个奇怪的问题......:/

我在我的页面PlaceHolder上,我动态生成更多PlaceHolders。 我存储了这个动态创建的PlaceHolders的名称。 当我试图找到任何这个PlaceHolders时 - 我有一个对象的错误null引用。

请帮忙! :)

 private void btnMoreInfo_Click(object sender, EventArgs e)
        {
            Button button = sender as Button;

            string[] componentName = button.ID.Split('_');


            String controlName  = null;

            foreach (String singlePlaceHolder in placeHolderNames)
            {
                if (singlePlaceHolder.Contains(componentName[0]))
                    controlName = singlePlaceHolder;
            }

            Control cph = this.Master.FindControl(controlName);

            Label helperlabel = new Label();
            helperlabel.Text = "That one!";
            cph.Controls.Add(helperlabel);
            cph.Visible = true;
        }

1 个答案:

答案 0 :(得分:0)

我将代码更改为此代码,现在正在使用:

var cph = FindControlRecursive(this.Master, controlName);

加上我添加了新方法:

private Control FindControlRecursive(Control root, string id)
{
 if(root.Id==id)
 {
   return root;
 }
 foreach (Control c in root.Controls)
 {
   Control t= FindControlRecursaive(c, id);
   if (t !=null)
   {
     return t;
   }
 }
return null;
}