关于asp.net:How如何访问Repeater FooterTemplate TextBox?

How to access Repeater FooterTemplate TextBox?

  • 我要做的是访问文本框1中的值,以便在屏幕上显示出来。
  • 我试图从页面load()和onitemdatabound访问它,但都失败了。
  • 似乎代码能够访问控件,但它没有返回任何内容。

    受保护的空页加载(对象发送程序,事件参数e){

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        Literal Literal1 = (Literal)Repeater1.Controls[Repeater1.Controls.Count - 1].FindControl("Literal1");
        Response.Write(Literal1.Text);
        //this techique is not working for the line below
        TextBox TextBox1 = (TextBox)Repeater1.Controls[Repeater1.Controls.Count - 1].FindControl("TextBox1");
        Response.Write(TextBox1.Text);

    }
    public void myRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        //this techique is not working
        if (e.Item.ItemType == ListItemType.Footer)
        {
            TextBox TextBox1 = (TextBox)e.Item.FindControl("TextBox1");
            Response.Write(TextBox1.Text);
        }
    }


我不知道你所说的"他们都失败了"是什么意思,但是如果文本框的文本属性是空的,我可能是因为你在每个帖子上重新绑定了中继器。尝试用包装转发器.databind()!IsPostback条件。


我必须通过传递HTML文本框问题来使用"literal"作为替代解决方案。我不喜欢这个解决方案,但我想我必须使用它。