佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 關(guān)于兩個(gè)自定義控件的取值問題及接口的應(yīng)用

關(guān)于兩個(gè)自定義控件的取值問題及接口的應(yīng)用

熱門標(biāo)簽:Mysql連接數(shù)設(shè)置 Linux服務(wù)器 電子圍欄 銀行業(yè)務(wù) 團(tuán)購網(wǎng)站 阿里云 科大訊飛語音識別系統(tǒng) 服務(wù)器配置
“一個(gè).aspx的頁面中,用到了兩個(gè)用戶控件,其中想做的到A控件有一個(gè)按鈕,點(diǎn)擊的時(shí)候獲取到B控件中的一個(gè)textbox的值。

因?yàn)樵谏傻臅r(shí)候名字會改變,用findcontrol的時(shí)候名字該如何寫呢?
另外像這種問題有幾種解決的辦法呢?”

論壇上看到這個(gè)問題,Insus.NET提供自己的解決方法,先看看解決運(yùn)行的效果:
 
首先創(chuàng)建一個(gè)站點(diǎn),然后創(chuàng)建兩個(gè)用戶控件,一個(gè)是UcA,一個(gè)是UcB。 在UcB的控件上拉一個(gè)TextBox。
復(fù)制代碼 代碼如下:

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

創(chuàng)建一個(gè)接口IGetValue:
復(fù)制代碼 代碼如下:

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實(shí)現(xiàn)這個(gè)接口,接口返回TextBox的Text值。
復(fù)制代碼 代碼如下:

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();
}
}

創(chuàng)建一個(gè)aspx頁面,如Default.aspx,切換至設(shè)計(jì)模式,把兩個(gè)用戶控件UcA,UcB拉至Default.aspx:
復(fù)制代碼 代碼如下:

%@ 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>

到這里,再創(chuàng)建一個(gè)接口Interface,目的是為了獲取UcB這個(gè)用戶控件。
復(fù)制代碼 代碼如下:

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();
}
}

接口創(chuàng)建好之后,在Default.aspx.cs實(shí)現(xiàn)這個(gè)IGetUserControl接口。
復(fù)制代碼 代碼如下:

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這個(gè)用戶控件的按鈕Click事件寫:
復(fù)制代碼 代碼如下:

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>");
}
}
您可能感興趣的文章:
  • .Net WInform開發(fā)筆記(三)談?wù)勛灾瓶丶?自定義控件)
  • asp.net自定義控件回發(fā)數(shù)據(jù)實(shí)現(xiàn)方案與代碼
  • asp.net中使用自定義控件的方式實(shí)現(xiàn)一個(gè)分頁控件的代碼
  • asp.net DropDownList自定義控件,讓你的分類更清晰
  • Asp.net 動(dòng)態(tài)加載用戶自定義控件,并轉(zhuǎn)換成HTML代碼
  • asp.net 自定義控件實(shí)現(xiàn)無刷新上傳圖片,立即顯示縮略圖,保存圖片縮略圖
  • asp.net自定義控件代碼學(xué)習(xí)筆記
  • asp.net 虛方法、抽象方法、接口疑問

標(biāo)簽:衢州 蚌埠 大理 萍鄉(xiāng) 江蘇 棗莊 衡水 廣元

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《關(guān)于兩個(gè)自定義控件的取值問題及接口的應(yīng)用》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    渑池县| 桐梓县| 吐鲁番市| 龙岩市| 永安市| 晋中市| 定远县| 巍山| 宣恩县| 确山县| 潞西市| 石门县| 榆树市| 夏津县| 孙吴县| 张掖市| 通州市| 合作市| 兴山县| 龙山县| 云安县| 神池县| 贵德县| 鄂温| 西乌| 崇阳县| 正蓝旗| 赞皇县| 云梦县| 宁都县| 永年县| 鹤峰县| 武邑县| 广平县| 浦北县| 保定市| 航空| 嘉善县| 乐山市| 莱阳市| 垫江县|