Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > C#/.NET入门教程

关于两个自定义控件的取值问题及接口的应用

来源:中文源码网    浏览:125 次    日期:2024-04-30 07:24:45
【下载文档:  关于两个自定义控件的取值问题及接口的应用.txt 】


关于两个自定义控件的取值问题及接口的应用
“一个.aspx的页面中,用到了两个用户控件,其中想做的到A控件有一个按钮,点击的时候获取到B控件中的一个textbox的值。 因为在生成的时候名字会改变,用findcontrol的时候名字该如何写呢? 另外像这种问题有几种解决的办法呢?”论坛上看到这个问题,Insus.NET提供自己的解决方法,先看看解决运行的效果: 首先创建一个站点,然后创建两个用户控件,一个是UcA,一个是UcB。 在UcB的控件上拉一个TextBox。 复制代码 代码如下: <%@ Control Language="C#" AutoEventWireup="true" CodeFile="UcB.ascx.cs" Inherits="UcB" %> 创建一个接口IGetValue: 复制代码 代码如下: IGetValue.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; /// /// Summary description for IGetValue /// namespace Insus.NET { public interface IGetValue { string GetValue(); } } 接下来,用户控件UcB实现这个接口,接口返回TextBox的Text值。 复制代码 代码如下: 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 UcB : System.Web.UI.UserControl,IGetValue { protected void Page_Load(object sender, EventArgs e) { } public string GetValue() { return this.TextBox1.Text.Trim(); } } 创建一个aspx页面,如Default.aspx,切换至设计模式,把两个用户控件UcA,UcB拉至Default.aspx: 复制代码 代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register Src="UcA.ascx" TagName="UcA" TagPrefix="uc1" %> <%@ Register Src="UcB.ascx" TagName="UcB" TagPrefix="uc2" %>
UcA
UcB
到这里,再创建一个接口Interface,目的是为了获取UcB这个用户控件。 复制代码 代码如下: IGetUserControl.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; /// /// Summary description for IGetUserControl /// namespace Insus.NET { public interface IGetUserControl { UserControl GetUc(); } } 接口创建好之后,在Default.aspx.cs实现这个IGetUserControl接口。 复制代码 代码如下: 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 _Default : System.Web.UI.Page,IGetUserControl { protected void Page_Load(object sender, EventArgs e) { } public UserControl GetUc() { return this.UcB1; } } 到最后,我们在UcA这个用户控件的按钮Click事件写: 复制代码 代码如下: 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 UcA : System.Web.UI.UserControl { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { IGetUserControl ucb = (IGetUserControl)this.Page; IGetValue value = (IGetValue)ucb.GetUc(); Response.Write("alert('" + value.GetValue() + "')"); } }

相关内容