用户控件(.ascx)调用网页(.aspx)的方法

一:
public void SetLabel(string str)
{
    this.Label1.Text = str; ;
}
然后在用户控件ascx文件中使用映射;
protected void Button1_Click(object sender, EventArgs e)
{
    System.Web.UI.Page p = this.Page;
    Type pageType = p.GetType();
    MethodInfo mi = pageType.GetMethod(" SetLabel");
    mi.Invoke(p, new object[] { "Hello World !" });

}

二:

用户控件:clickTest.ascx.cs(注:在页面上就加了一个按钮,html代码在这里就不贴出来了)  
   
  namespace   WebTest  
  {  
  using   System;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
  public   delegate   void   OnClick(object   sender,EventArgs   e);  
  ///   <summary>  
  /// clickTest   的摘要说明。  
  ///   </summary>  
  public   class   clickTest   :   System.Web.UI.UserControl  
  {  
  protected   System.Web.UI.WebControls.Button   Button1;  
  public   event   OnClick   Click;  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  }  
   
  #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)  
  {  
  Click(this,new   EventArgs());  
  }  
  }  
  }  
   
   
  使用控件页面:test.aspx  
   
  <%@   Page   language="c#"   Codebehind="test.aspx.cs"   AutoEventWireup="false"   Inherits="WebTest.test"   %>  
  <%@   Register   TagPrefix="uc1"   TagName="clickTest"   Src="clickTest.ascx"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
  <HEAD>  
  <title>test</title>  
  <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1">  
  <meta   name="CODE_LANGUAGE"   Content="C#">  
  <meta   name="vs_defaultClientScript"   content="JavaScript">  
  <meta   name="vs_targetSchema"   content="http://schemas.microsoft.com/intellisense/ie5">  
  </HEAD>  
  <body   MS_POSITIONING="GridLayout">  
  <form   id="Form1"   method="post"   runat="server">  
  <FONT   face="宋体">  
  <uc1:clickTest   id="ClickTest1"   runat="server"></uc1:clickTest></FONT>  
  </form>  
  </body>  
  </HTML>  
   
  使用控件页面的后台编码:test.aspx.cs  
   
  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   WebTest  
  {  
  ///   <summary>  
  ///   test   的摘要说明。  
  ///   </summary>  
  public   class   test   :   System.Web.UI.Page  
  {  
  protected   clickTest   ClickTest1;  
  private   void   Page_Load(object   sender,   System.EventArgs   e)  
  {  
  //   在此处放置用户代码以初始化页面  
  }  
   
  #region   Web   窗体设计器生成的代码  
  override   protected   void   OnInit(EventArgs   e)  
  {  
  //  
  //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
  //  
  InitializeComponent();  
  base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
  this.Load   +=   new   System.EventHandler(this.Page_Load);  
  this.ClickTest1.Click   +=   new   OnClick(ClickTest1_Click);  
  }  
  #endregion  
   
  private   void   ClickTest1_Click(object   sender,   EventArgs   e)  
  {  
  Response.Write("你单击了用户控件");  
  }  
  }  
  }  

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a3676212

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值