我有一个包含多个文本框的.aspx页面,包括ID为txtID1,txtID2,txtID3等的文本框,等等。
我正在尝试通过循环遍历节点列表来使用XML文件中的数据填充文本框。对于每个循环,我想使用FindControl
方法定位txtID1并将其.Text
设置为第一个节点的id
属性的值;然后将txtID2及其.Text定位到第二个节点的id
属性的值,依此类推。
当运行以下代码行时,我得到TextBox txtID的空引用错误,因此看起来我对FindControl
方法做错了。我的语法不正确吗?我需要使用其他方法吗?
int x = 1;
XmlNodeList getAuthors = getItem.SelectNodes("item/authors");
foreach (XmlNode getAuthor in getAuthors)
{
TextBox txtID = (TextBox)Page.FindControl("txtID" + x.ToString());
txtID.Text = getAuthor.Attributes["id"].Value.ToString();
x = x + 1;
}
答案 0 :(得分:0)
经过进一步研究(即大量谷歌搜索)后,我似乎遇到了这个问题因为我正在使用母版页。既没有(TextBox)FindControl也没有(TextBox)Page.FindControl工作,所以我放弃了这种方法。这篇旧文章似乎解释了我的问题。
http://weblog.west-wind.com/posts/2006/Apr/09/ASPNET-20-MasterPages-and-FindControl