当前位置:编程学习 > C#/ASP.NET >>

动态生成textbox ,无法访问控件

我在页面点击按钮 动态生成 textbox 控件

点击 保存 按钮访问的时候,访问不到,未将实例引用到对象。

从网上看是因为没有重新加载,不知应该如何加载,求赐教.... --------------------编程问答-------------------- 恐怕你要先把生成的控件添加到你页面的容器里,才能访问的到 --------------------编程问答--------------------
引用 1 楼  的回复:
恐怕你要先把生成的控件添加到你页面的容器里,才能访问的到


在页面上已经生成了,在页面上可以看到生成的控件

txt = tdParamIN.FindControl(“txtProvinceID”) as TextBox;
txt.Text 时候报错。 --------------------编程问答-------------------- 必须要在Page_Load里面生产。 --------------------编程问答--------------------
引用 3 楼  的回复:
必须要在Page_Load里面生产。


现在这种情况如何改进啊? --------------------编程问答-------------------- 怎么没人说话了..... --------------------编程问答--------------------
引用 4 楼  的回复:
引用 3 楼  的回复:
必须要在Page_Load里面生产。


现在这种情况如何改进啊?



用Request.Form取值。 --------------------编程问答--------------------
引用 6 楼  的回复:
引用 4 楼  的回复:

引用 3 楼  的回复:
必须要在Page_Load里面生产。


现在这种情况如何改进啊?



用Request.Form取值。


如果还要在页面显示textbox的话  把textbox的状态保存下来 在page_load 里面在创建一遍  --------------------编程问答-------------------- 肯定报错的哈。。。。。因为你服务端动态创建的control是没有被asp.net保存状态的,在进行回发之后是不认识你动态添加的控件的,解决方法是回发和第一次加载都去动态添加你的控件,至于控件的状态,可以使用ViewState来维护

具体实现,你自己设计了。。。 --------------------编程问答--------------------
引用 7 楼  的回复:
引用 6 楼  的回复:

引用 4 楼  的回复:

引用 3 楼  的回复:
必须要在Page_Load里面生产。


现在这种情况如何改进啊?



用Request.Form取值。


如果还要在页面显示textbox的话  把textbox的状态保存下来 在page_load 里面在创建一遍



如果控件不多的话,还可以把控件声明成全局变量就OK了,取值,赋值都方便。
    public partial class _Default : System.Web.UI.Page
    {
        private TextBox txt_Test;

        protected void Page_Load(object sender, EventArgs e)
        {
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            txt_Test = new TextBox();
            txt_Test.ID = "txt_Test";
            txt_Test.Text = "。。。。。设置文本。。。。";
            form1.Controls.Add(txt_Test);
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            string str = this.txt_Test.Text;
        }
    }
--------------------编程问答-------------------- 一个类的私有字段。。。。。怎么变成全局变量了。。。。。
引用 9 楼  的回复:
引用 7 楼  的回复:

引用 6 楼  的回复:

引用 4 楼  的回复:

引用 3 楼  的回复:
必须要在Page_Load里面生产。


现在这种情况如何改进啊?



用Request.Form取值。


如果还要在页面显示textbox的话  把textbox的状态保存下来 在page_load 里面在创建一遍



如果控件不多的话,……
--------------------编程问答-------------------- 一个类的私有字段。。。。。怎么变成全局变量了。。。。。


习惯说法问题,不必较真。 --------------------编程问答-------------------- 说法不对,造成思想概念不对,还是要矫正一下,兄弟
引用 11 楼  的回复:
一个类的私有字段。。。。。怎么变成全局变量了。。。。。


习惯说法问题,不必较真。
--------------------编程问答--------------------
引用 12 楼  的回复:
说法不对,造成思想概念不对,还是要矫正一下,兄弟
引用 11 楼  的回复:

一个类的私有字段。。。。。怎么变成全局变量了。。。。。


习惯说法问题,不必较真。


C#根本就没有真正的全局变量。
把声明在函数外的变量称为全局变量,把声明在函数内的变量成为局部变量,也是可以理解的。 --------------------编程问答-------------------- Refer:

http://www.cnblogs.com/insus/archive/2012/09/23/2698613.html


also see:

http://www.cnblogs.com/insus/archive/2012/09/24/2700658.html --------------------编程问答-------------------- 14楼的- -真犀利
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,