注意一下Page_Load和Click事件处理程序执行的先后顺序

解决方案 »

  1.   

    记住这一点很重要:web编程遵循的协议是http是无状态的,也就是说,你动态生成的控件在客户端已经转换成html标签了,不是服务器控件了,所以你无法引用到该控件,具体解决方案请看我问过的帖子,里面有详细的说明:
    http://community.csdn.net/Expert/topic/5484/5484881.xml?temp=.9414331
      

  2.   

    用Request获取。。动态创建的空间不保存Viewstate
      

  3.   

    我在按钮的click事件里面动态创建了textbox
    然后我在动态创建的textbox里面输入值,然后按按钮,在该按钮事件里面想得到textbox的值
    但是我的tb.text始终提示对象未初始化,这个是为什么??
    ***************************************
    道理很简单
    因为你在click事件里面动态创建了textbox是个局部变量,局部变量只在创建该变量的方法内有效(说的明确一点就是创建textbox的按钮点击事件这个方法内有效),这个方法运行一结束,textbox就会失效而被垃圾回收器回收。所以,你接下来再输入文本然后点击按钮(不管这个按钮就是创建textbox的那个按钮,还是页面上的其他按钮),都不可能引用textbox的。解决办法:
    把textbox由动态创建改成静态,你在设计阶段先拖放好textbox,然后pa
      

  4.   

    tt2.ID = "TextBox" + j.ToString();如果j是1的话。。就用 Request["TextBox1"]得到它的值
      

  5.   

    接着上面的没讲完……然后把textbox设置为visible=false;在按钮点击事件中再visible=true。这样你接下来再输入文本然后点击按钮就能引用这个textbox的。
    因为你在设计阶段创建的textbox不是方法的局部变量,而是页面的实例变量,实例变量在页面对象的整个生命周期中有效,也就是说可以被对象的所有方法访问。接分。一句话,要成为高手,首先从基本知识做起
      

  6.   

    Table里面动态加的控件都不能保持,每次Page_Load时都要重新加一遍,而且不管是否是IsPostBack,先清空,再加,这样才能取到值。
    应该是Table控件设计时没有用ViewState保持状态的原因。
      

  7.   

    dddd218(恋恋风尘) 是无关的。控件可以按需动态加载,并不是只能静态设计。如果总是加载,然后Visible=false,那种让机器多做好多倍控件加载和状态处理工作而又没有任何ui效果的设计,并不是动态控件设计的正招。
      

  8.   

    to:sp1234(嘿嘿) 
    控件可以按需动态加载,并不是只能静态设计。如果总是加载,然后Visible=false,那种让机器多做好多倍控件加载和状态处理工作而又没有任何ui效果的设计,并不是动态控件设计的正招。
    **************************
    1.控件当然可以按需动态加载,也可以静态设计
    2.楼主的问题用静态设计简单明了
    3.动态创建不见得比静态设计效率高
      

  9.   

    而又没有任何ui效果的设计
    ******************************
    4.恰恰相反,静态设计的控件在设计的时候可以比较容易创建ui效果
      

  10.   

    to:sp1234(嘿嘿) 
    控件可以按需动态加载,并不是只能静态设计。如果总是加载,然后Visible=false,那种让机器多做好多倍控件加载和状态处理工作而又没有任何ui效果的设计,并不是动态控件设计的正招。
    **************************
    1.控件当然可以按需动态加载,也可以静态设计
    2.楼主的问题用静态设计简单明了
    3.动态创建不见得比静态设计效率高
    -----------------------------------------------------
    如果数量不定怎么静态设计?有数百个就要拖入至少数百个控件?不要只考虑ui上是否显示,还要考虑服务器的开销,静态拖入随后ui上不显示,但后台服务器肯定要处理的。
      

  11.   

    to:Ivy_zheng
    如果数量不定怎么静态设计?有数百个就要拖入至少数百个控件?不要只考虑ui上是否显示,还要考虑服务器的开销,静态拖入随后ui上不显示,但后台服务器肯定要处理的。
    ********************
    同意你的看法,但是不要忘了楼主的问题好像只需创建一个textbox
      

  12.   

    bingbingcha(不思不归,不孟不E,原来是头大灰狼) ( ) 信誉:106    Blog   加为好友  2007-4-29 23:09:26  得分: 0  
     
     
       
    tt2.ID = "TextBox" + j.ToString();如果j是1的话。。就用 Request["TextBox1"]得到它的值  
     
    如果我的这个j是for循环里的j不是固定的呢,我该怎么写啊??