zoukankan      html  css  js  c++  java
  • Asp.net 查找不到动态创建的控件之解决办法【整理】

    方法一:

    要想动态添加的控件能"保持",简单的做法就是在page_init里加载,而不是page_load

    C# code

    protected override void OnInit(EventArgs e)
    
        {
    
            try 
    
            {
    
                //在这里加载控件
    
                base.OnInit(e);
    
            }
    
            catch (Exception MyEx)
    
            {    
    
                MyHelper.ShowExceptionMeessage(MyEx);
    
            }
    
            finally
    
            {
    
            }
    
        }
    
    

    方法二:

    	protected void Page_Load(object sender, EventArgs e)
    	{
    	    if (!IsPostBack)
    	    {
    	        LoadTextBox();
    	    }
    	}
    	
    	protected override void LoadViewState(object savedState)
    	{
    	    base.LoadViewState(savedState);
    	
    	    if (IsDynamicLoadControl)
    	    {
    	        LoadTextBox();
    	    }
    	}
    	private void LoadTextBox()
                 {
                     for (int i = 0; i < 10; i++)
    	    {
    	         TextBox input = new TextBox();
    	         input.ID = "input" + i.ToString();
    	         this.form1.Controls.Add(input);
    	    }
    	    IsDynamicLoadControl = true;
    	}
    	public bool IsDynamicLoadControl
    	{
    	    get
    	    {
    	        object dynamic = ViewState["IsDynamicLoadControl"];
    	        return dynamic == null ? false : true;
    	    }
    	    set
    	    {
    	        ViewState["IsDynamicLoadControl"] = value;
    	    }
    	}
    

     

    TextBox tb = this.FindControl("input0") as TextBox;
    
    ClientScript.RegisterStartupScript( this.GetType(), "", string.Format("<script>alert('{0}')</script>",tb.Text));
    
    

     

    最后可以进行测试一下:
  • 相关阅读:
    段落某些子段高量
    CSS 知识点
    PHP 表单与音频知识点及使用
    PHP 标签、表格的知识点与超链接的结合使用
    PHP课程第一天知识点
    java ArrayList集合
    java 引用数据类型(类)
    java 方法重载
    java 方法
    java 二维数组
  • 原文地址:https://www.cnblogs.com/linyc/p/1996289.html
Copyright © 2011-2022 走看看