一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - 關于兩個自定義控件的取值問題及接口的應用

關于兩個自定義控件的取值問題及接口的應用

2019-10-21 10:54asp.net教程網 ASP.NET教程

一個.aspx的頁面中,用到了兩個用戶控件,其中想做的到A控件有一個按鈕,點擊的時候獲取到B控件中的一個textbox的值想必大家會使用findcontrol獲取控件吧,而在生成的時候名字是不確定的,那么如何書寫呢?接下來為您提供詳細的

“一個.aspx的頁面中,用到了兩個用戶控件,其中想做的到A控件有一個按鈕,點擊的時候獲取到B控件中的一個textbox的值。 

因為在生成的時候名字會改變,用findcontrol的時候名字該如何寫呢? 
另外像這種問題有幾種解決的辦法呢?”

論壇上看到這個問題,Insus.NET提供自己的解決方法,先看看解決運行的效果: 
關于兩個自定義控件的取值問題及接口的應用 
首先創建一個站點,然后創建兩個用戶控件,一個是UcA,一個是UcB。 在UcB的控件上拉一個TextBox。 

復制代碼代碼如下:


<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UcB.ascx.cs" Inherits="UcB" %> 
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 


創建一個接口IGetValue: 

復制代碼代碼如下:


IGetValue.cs 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
/// <summary> 
/// Summary description for IGetValue 
/// </summary> 
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" %> 
<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
<title></title> 
</head> 
<body> 
<form id="form1" runat="server"> 
<fieldset> 
<legend>UcA 
</legend> 
<uc1:UcA ID="UcA1" runat="server" /> 
</fieldset> 
<fieldset> 
<legend>UcB 
</legend> 
<uc2:UcB ID="UcB1" runat="server" /> 
</fieldset> 
</form> 
</body> 
</html> 


到這里,再創建一個接口Interface,目的是為了獲取UcB這個用戶控件。 

復制代碼代碼如下:


IGetUserControl.cs 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
/// <summary> 
/// Summary description for IGetUserControl 
/// </summary> 
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("<scr" + "ipt>alert('" + value.GetValue() + "')</scr" + "ipt>"); 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚州人成网在线播放 | 天堂成人在线观看 | 午夜宅男影院 | 国产 国语对白 露脸正在播放 | 国产欧美日韩精品高清二区综合区 | 精品视频在线免费看 | 舔大逼| 精品一久久香蕉国产二月 | 人人人人看人人人做人人 | 日韩欧美一区二区在线观看 | 夫妻性生活影院 | 国产视频久久 | 欧美二区视频 | www.色小妹 | 美女被狂干 | 久久久久久久久性潮 | 色吧欧美| 韩国www| 成人性用品 | 欧美日韩国产精品va | 精灵之森高清在线 | 亚洲国产精品综合福利专区 | 99re这里只有精品视频在线观看 | 亚久久伊人精品青青草原2020 | 成人小视频在线免费观看 | 成人aaaa| 91手机在线| 婷婷影院在线观看 | 色老板美国在线观看 | 青青草在线观看 | 欧美日韩一区二区三区在线播放 | 国产成人亚洲精品91专区手机 | 九九热这里只有精品视频免费 | 肉肉小说在线阅读 | 女性全身裸露无遮挡 | 日韩欧美国产在线 | 免费视频专区一国产盗摄 | 公园暴露娇妻小说 | 日本xx高清视频免费观看 | 国产人成精品午夜在线观看 | 九色PORNY真实丨国产免费 |