none
如何获取UpdatePanel里动态生成的控件的值? RRS feed

  • 问题

  • namespace Pranser
    {
      public partial class test1 : System.Web.UI.Page
      {
    
        protected void Page_Load(object sender, EventArgs e)
        {
          
        }
        protected void TextBox1_TextChanged(object sender, EventArgs e)
        {
          for (int i = 0; i < int.Parse(TextBox1.Text); i++)
          {
            TextBox tb = new TextBox();
            tb.ID ="tb"+i.ToString();
            Update1.ContentTemplateContainer.Controls.Add(tb);
    
    
              
    
            }
          }
        
        protected void Button1_Click(object sender, EventArgs e)
        {
    
          
         
          Server.Transfer("test2.aspx");
        }
      }
    }
    
    我用了Findcontrol方法,但怎么样都是空的,哪位大大能给我一段代码?谢谢了
    2011年3月8日 10:13

答案

  • 你这个问题 你没有很好了解asp.net机制生命期  当你按下这个按钮后 还有个地方你必须处理 request.form接收所有key的值  你必须控制你定义动态的生成控件的name值 然后跨页到另一个页之前面 把这些的值装一个数组 

    动态有动态处理法  静态有静态处理法

    • 已标记为答案 拂尘 2011年3月14日 12:39
    2011年3月12日 10:32
  • FindControl只能找到在designer的控件,如果这个控件在页面生成的话,可以直接用Request.Form["name"]获取到这个值
    2011年3月13日 10:05
    版主

全部回复

  • 首先检查下TextBox1_TextChanged这个事件里面的方法是否执行,


    http://blog.csdn.net/zx13525079024
    2011年3月8日 13:23
  • 执行啊,都没有问题啊..就是找不到控件的值
    2011年3月10日 2:29
  • 没有看到Findcontrol的代码,可以在不同的方法里设断点,因为各事件触发有先后顺序,看看是否在控件创建前Findcontrol
    2011年3月10日 13:13
    版主
  • 你这个问题 你没有很好了解asp.net机制生命期  当你按下这个按钮后 还有个地方你必须处理 request.form接收所有key的值  你必须控制你定义动态的生成控件的name值 然后跨页到另一个页之前面 把这些的值装一个数组 

    动态有动态处理法  静态有静态处理法

    • 已标记为答案 拂尘 2011年3月14日 12:39
    2011年3月12日 10:32
  • FindControl只能找到在designer的控件,如果这个控件在页面生成的话,可以直接用Request.Form["name"]获取到这个值
    2011年3月13日 10:05
    版主