使用带有findcontrol

时间:2016-01-10 06:02:09

标签: findcontrol

我有一个包含多个文本框的.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;
}

1 个答案:

答案 0 :(得分:0)

经过进一步研究(即大量谷歌搜索)后,我似乎遇到了这个问题因为我正在使用母版页。既没有(TextBox)FindControl也没有(TextBox)Page.FindControl工作,所以我放弃了这种方法。这篇旧文章似乎解释了我的问题。

http://weblog.west-wind.com/posts/2006/Apr/09/ASPNET-20-MasterPages-and-FindControl