zoukankan      html  css  js  c++  java
  • 还是动态添加控件 触发事件

    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 WebApplication1
    {
        
    /// <summary>
        
    /// Dy01 的摘要说明。
        
    /// </summary>

        public class Dy01 : System.Web.UI.Page
        
    {
            
    protected System.Web.UI.WebControls.Button Button1;
            
    protected System.Web.UI.HtmlControls.HtmlForm Form1;
            
    private static bool AddIt = false;
        
            
    private void Page_Load(object sender, System.EventArgs e)
            
    {
                
    // 在此处放置用户代码以初始化页面

                
    //点了添加按钮之后不会马上添加下拉框  应为Page_Load在ButtonClick之前执行, AddIt还是上次的值
                
    //要想控件能触发事件 必须在PageLoad事件之前判断.
                if( AddIt )
                
    {
                    DropDownList ddl 
    = new DropDownList();

                    ddl.AutoPostBack 
    = true;
                    ddl.SelectedIndexChanged 
    += new EventHandler(ddl_SelectedIndexChanged);

                    
    this.Form1.Controls.Add( ddl );

                    
    //子项要在父控件添加之后添加  这样ViewState才会保存 追赶
                    ddl.Items.Add(new ListItem("1","1") );
                    ddl.Items.Add(
    new ListItem("2","2") );

                }

                
            }


            
    Web 窗体设计器生成的代码

            
    private void Button1_Click(object sender, System.EventArgs e)
            
    {
                AddIt 
    = true;
                
            }


            
    private void ddl_SelectedIndexChanged(object sender, EventArgs e)
            
    {
                Response.Write(
    "触发了下拉框的回传事件");
            }

        }

    }

    实现:
    点击按钮后添加一个下拉框 下拉框可以触发事件。

    1. 控件要在Load事件之前添加才能触发自己的回传事件。
    2. 先添加父控件再添加它的子项,这样可以保存ViewState. 有一个周期追赶的过程。
  • 相关阅读:
    LoadRunner时间戳函数web_save_timestamp_param
    场景报错Error -27492: "HttpSendRequest" failed, Windows error code=12029 (cannot connect) and retry limit (0) exceeded for URL=""
    nginx配置和测试
    基准测试-jmeter压力测试activeMQ之一环境安装配置
    Windows负载机JVM 远程监控Linux服务器下tomcat
    查看linux机器cpu、内存环境信息
    C语言-重写strupr函数
    Promise(一)
    Zookeeper在Linux平台Java开发环境配置(命令行)
    Zookeeper会话
  • 原文地址:https://www.cnblogs.com/yizhinantian/p/832516.html
Copyright © 2011-2022 走看看