Asp.net我在页面中找不到文本框

Asp.net我在页面中找不到文本框,asp.net,textbox,Asp.net,Textbox,我正在使用Visual Studio 2010和asp.net C#。我写了下面的代码: protected void Page_LoadComplete(object sender, EventArgs e) { tbTLCTitle.Text = readMainXml("homepage", "LeftColumnTop", "title"); String[] liTable = readMainXmlList("homepage", "LeftColumnTop",

我正在使用Visual Studio 2010和asp.net C#。我写了下面的代码:

protected void Page_LoadComplete(object sender, EventArgs e)
{

    tbTLCTitle.Text = readMainXml("homepage", "LeftColumnTop", "title");
    String[] liTable = readMainXmlList("homepage", "LeftColumnTop", "textRow");
    for (int i = 0; i < liTable.Length; i++)
    {
        TextBox tb = new TextBox();
        tb.CssClass = "tbCss";
        tb.ID = "textbox" + i;
        tb.Text = liTable[i];
        tb.BorderStyle = BorderStyle.None;
        divTextRow.Controls.Add(tb);
    }
}
protected void btnSave_Click(object sender, EventArgs e)
{
    ContentPlaceHolder cph = (ContentPlaceHolder)Master.FindControl("cpTextContent");
    if (cph != null)
    {
        var div = cph.FindControl("divTextRow");
        if (div != null)
        {
            var tb =
                div.FindControl("textbox0");
            if (tb != null)
            {
                tb.Text = "TextBox found!";
            }
        }
    }
}
受保护的无效页面\u加载完成(对象发送方,事件参数e)
{
Text=readMainXml(“主页”、“左栏顶”、“标题”);
字符串[]liTable=readMainXmlList(“主页”、“LeftColumnTop”、“textRow”);
for(int i=0;i
我将解释我想做什么:

我有一个带有
id=“divTextRow”
的div,我想动态添加一些textbox对象

Page\u LoadComplete
中,我读取xml,并使用xml中的文本和
id=“TextBox”+I
(示例:textbox0)创建TextBox对象

在我的页面中,我有一个带有
id=“btnSave”
OnClick=“btnSave\u Click”
的按钮

现在我想从那些textbox对象中获取文本并将其保存为xml


我有要保存为xml的代码,但我无法从textbox对象获取文本。

要做到这一点,带有
id=“divTextRow”
的div标记应该是服务器控件。因此,在.aspx文件的标记中将属性
runat=“server”
添加到此div标记。

请参阅MSDN中的文章。尝试使用document.getElementById方法。

您也可以发布html代码吗?您也可以发布前端代码吗?看到这一点也会很有帮助。请发布这些控件的标记。它们是否都是服务器端的(
runat=“server”
)?在代码中,您为文本框赋值。我没有看到任何可以从文本框中获取值的代码。您是否能够在
var div=cph.FindControl(“divTextRow”)中成功获取div控件谢谢你的回答。我已经这样做了,所以我可以找到这个对象(var div=cph.FindControl(“divTextRow”);)。问题就在那一行:var tb=div.FindControl(“textbox0”);我找不到该对象。通常ASP.NET会根据其作用域为此类动态生成的UI控件的ID添加前缀。因此,您的文本框可能具有类似“ctl00$cplh$textbox0”的ID。我建议做一个包含这些文本框的呈现页面的查看源代码,并检查这些控件的ID。我已经尝试了所有方法。Asp.net给了他们id=“cpTextContent\u textbox0”、“cpTextContent\u textbox1”等,但我找不到。。也许问题是每次回发邮件的文本框我都找不到,因为它们根本不存在。谢谢,但帮不了我。可能是因为我不熟悉java。