• (补充)移除动态添加的控件


    好像问动态添加控件的人很多,问题大多集中
    (1)动态添加的按钮不能提交
    (2)动态添加的文本框取不到值
    (3)动态添加的控件页面刷新后消失
    (4)动态添加的控件页面刷新重复添加
    (5)动态添加的控件不知道怎么移除
    问题百出,但是其实这些都是非常简单的,可能疏忽了一点两点,补充以前写的2篇文章(以前写的比较乱)
    这个页面实现:
    点击添加按钮-》添加一个文本框一个提交按钮-》点击提交按钮输出文本框值
    点击删除按钮(就是前面那个添加按钮)-》移除文本框和提交按钮
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    namespace csdn2
    {
        
    /// <summary>
        
    /// WebForm65 的摘要说明。
        
    /// </summary>

        public class WebForm65 : System.Web.UI.Page
        
    {
            
    protected System.Web.UI.WebControls.Button Button1;
        
            
    private void Page_Load(object sender, System.EventArgs e)
            
    {
                
    if(Page.IsPostBack) 
                

                    
    if(ViewState["adduc"]!=null
                    

                        adduc(); 
                    }
     
                }
     
            }


            
    #region Web 窗体设计器生成的代码
            
    override protected void OnInit(EventArgs e)
            
    {
                
    //
                
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
                
    //
                InitializeComponent();
                
    base.OnInit(e);
            }

            
            
    /// <summary>
            
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
            
    /// 此方法的内容。
            
    /// </summary>

            private void InitializeComponent()
            
    {    
                
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
                
    this.Load += new System.EventHandler(this.Page_Load);

            }

            
    #endregion


            
    private void Button1_Click(object sender, System.EventArgs e)
            
    {
                
    if(ViewState["adduc"]==null
                

                    adduc(); 
                    ViewState[
    "adduc"]=1
                }
     
                
    else
                
    {
                    deluc(); 
                    ViewState[
    "adduc"]=null
                }

            }


            
    private void Button2_Click(object sender, System.EventArgs e)
            
    {
                TextBox t
    =(TextBox)Page.FindControl("t");
                
    if(t!=null)Response.Write(t.Text);        
            }


            
    public void adduc()
            
    {
                TextBox t
    =new TextBox();
                t.ID
    ="t";
                Page.Controls[
    1].Controls.Add(t);
                
    this.Button1.Text="删除";
                Button b
    =new Button();
                b.Text
    ="提交";
                b.ID
    ="b";
                b.Click 
    += new System.EventHandler(this.Button2_Click);
                Page.Controls[
    1].Controls.Add(b);
            }


            
    public void deluc()
            
    {
                Page.Controls[
    1].Controls.Remove(Page.FindControl("t"));
                Page.Controls[
    1].Controls.Remove(Page.FindControl("b"));
                
    this.Button1.Text="添加";
            }

        }

    }

    欢迎大家阅读我的极客时间专栏《Java业务开发常见错误100例》【全面避坑+最佳实践=健壮代码】
  • 相关阅读:
    Mysql加锁过程详解(1)-基本知识
    Mysql加锁过程详解(5)-innodb 多版本并发控制原理详解
    java笔试题-1
    通过六个题目彻底掌握String笔试面试题
    JDBC实现往MySQL插入百万级数据
    打印变量地址-0x%08x
    cin中的注意事项
    猎豹网校C++ Primer学习笔记
    物体检测相关——学习笔记
    teraflop级、TFLOPS、TOPS
  • 原文地址:https://www.cnblogs.com/lovecherry/p/152455.html
Copyright © 2020-2023  润新知