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));
    
    

     

    最后可以进行测试一下:
  • 相关阅读:
    前端面试集锦
    nodeJs上传附件
    逻辑于 逻辑或
    webpack 学习笔记 (一)
    yum 安装mongodb mysql
    闭包面试提 (2)
    主动的重要性
    1.1一天一题:逆转字符串
    编程提高:一天一道编程题
    iconv将文件编码从gb2312 转换为utf-8
  • 原文地址:https://www.cnblogs.com/linyc/p/1996289.html
Copyright © 2011-2022 走看看