网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 大学论文导航 设计下载 最新论文 下载排行 原创论文 论文源代码
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > ASP.net > 正文

asp.net中用户自定义控件调用另外一个用户自定义

来源:http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/12/13

这几天开发项目时我遇到一个问题:在一个页面中有二个用户自定义控件,现在想在其中一个用户自定义控件中调用另外一个用户自定义控件的一个方法。
   当时感觉很奇怪,为什么要这样呢。可是他说他要完成这样一个功能,所以我就简单的用一个反射的功能来完成它。试了一下,还行功能可以实现。现在把代码,放上来,供大家研究一下。(vs2008英文版上运行正常)
一,WebForm3.aspx(主要是用来加载二个用户控件的)
 

 

以下是引用片段:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="WebApplication1.WebForm3" %> 


<%@ Register src="one.ascx" tagname="one" tagprefix="uc2" %> 
<%@ Register src="two.ascx" tagname="two" tagprefix="uc3" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     
        <uc2:one ID="one1" runat="server" /> 
        <uc3:two ID="two1" runat="server" /> 
     
    </div> 
    </form> 
</body> 
</html> 

二,被调用方法的用户自定义控件(two.ascx)
 

 

以下是引用片段:
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace WebApplication1 

    public partial class two : System.Web.UI.UserControl 
    { 
        protected void Page_Load(object sender, EventArgs e) 
        { 

        } 


        //此处只是返回一个值。你可以根据你的需要加上一些别的方法。也可以在chen()这里加入参数。如:chen(int i,string b) 
        public string chen() 
        { 
            return "chen"; 
        } 
    } 
}
三,调用用户控件方法的用户控件页面one.ascx
前台:就是加一个文本框,和一个按钮,把two.ascs中的值传过来
后台:
 

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="one.ascx.cs" Inherits="WebApplication1.one" %> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

 

  1. 以下是引用片段:
    using System; 
    using System.Collections.Generic; 
    using System.Linq; 
    using System.Web; 
    using System.Web.UI; 
    using System.Web.UI.WebControls; 

    namespace WebApplication1 

        public partial class one : System.Web.UI.UserControl 
        { 
            protected void Page_Load(object sender, EventArgs e) 
            { 

            } 

             

            protected void Button1_Click(object sender, EventArgs e) 
            { 
                //取得用户控件的类型 
                Type t = Parent.Page.FindControl("two1").GetType(); 

                //取得用户控件的信息 
                System.Web.UI.Control u = Parent.Page.FindControl("two1"); 

                //得到用户控件中要调用的方法 
                System.Reflection.MethodInfo m = t.GetMethod("chen"); 

                //如果你有参数要进行传值,可以采用下面被注释的方法,来进行传值。如果没有就相我一定直接定义一个就行了。 
                //object[] obj = new object[1]; 
                //    obj[0] = "1"; 
                // this.TextBox1.Text = m.Invoke(u, obj).ToString(); 
                this.TextBox1.Text = m.Invoke(u, new object[0]).ToString(); 
            } 
        } 
    }
(责任编辑:admin)

网学推荐

免费论文

原创论文

设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号