我有一个奇怪的问题......:/
我在我的页面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;
}
答案 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;
}