继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

在用户控件中动态添加控件及事件

慕田峪9129951
关注TA
已关注
手记 337
粉丝 200
获赞 993


 

动态添加控件,应该加在OnInit(EventArgs e)事件里。

 protected override void OnInit(EventArgs e)
    {
       //加在这个事件内
    }

 

下面Insus.NET就以动态添加一个TextBox在用户控件内,在控件值发生变化时,触发事件,并提示变化后的值。

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="InsusUserControl.ascx.cs" Inherits="InsusUserControl" %>
<asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>

 

5acf071b0001405b00110016.jpgInsusUserControl.ascx.cs using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Insus.NET;

public partial class InsusUserControl : System.Web.UI.UserControl
{
    protected override void OnInit(EventArgs e)
    {
        TextBox tb = new TextBox();
        tb.ID = "TextBox1";
        tb.AutoPostBack = true;
        tb.TextChanged +=tb_TextChanged;
        this.PlaceHolder1.Controls.Add(tb);
        base.OnInit(e);
    }
    
    protected void Page_Load(object sender, EventArgs e)
    {

    }

    protected void tb_TextChanged(object sender, EventArgs e)
    {
        var tb = (TextBox)sender;
        if (string.IsNullOrEmpty(tb.Text.Trim ())) return;
        string s = "当前TextBox控件值为:" + tb.Text.Trim();
        InsusJavascriptUtility objJs = new InsusJavascriptUtility ();
        objJs.JsAlert (s);
        //Response.Write ("<scr" + "ipt> alert('" + s +"') </scr" + "ipt>");
    }
}

 

把用户控件拉入aspx页面中,并运行:


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP