用戶控件(ASCX)向網(wǎng)頁(ASPX)傳值使用反射實現(xiàn)
更新時間:2013年03月22日 15:04:31 作者:
用戶控件向網(wǎng)頁傳遞值,網(wǎng)上的方法有很多,本文嘗試一下使用反射來實現(xiàn),感興趣的朋友可以參考下哈,希望可以幫助到你
用戶控件向網(wǎng)頁傳遞值,方法非常之多,此博文嘗試使用反射來實現(xiàn)。在站點中,建一個網(wǎng)頁以及一個用戶控件。 網(wǎng)頁切換至設計模式,拉用戶控件至網(wǎng)頁上。
Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="InsusUC.ascx" TagName="InsusUC" TagPrefix="uc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:InsusUC ID="InsusUC1" runat="server" />
<br />
<br />
Hi, You input infor as below:<br />
first textbox value:
<asp:Label ID="LabelshowFirstValue" runat="server" Text="" ForeColor="Red"></asp:Label><br />
Second textbox value:
<asp:Label ID="LabelshowLastValue" runat="server" Text="" ForeColor="Red" ></asp:Label>
</div>
</form>
</body>
</html>
Default.aspx.cs,建一個帶兩個參數(shù)的public方法。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void ReadUCMessage(string value1, string value2)
{
this.LabelshowFirstValue.Text = value1;
this.LabelshowLastValue.Text = value2;
}
}
接下來,我們創(chuàng)建一個用戶控件:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="InsusUC.ascx.cs" Inherits="InsusUC" %>
First Name <asp:TextBox ID="TextboxFirstName" runat="server"></asp:TextBox><br />
Last Name <asp:TextBox ID="TextboxLastName" runat="server"></asp:TextBox><br />
<asp:Button ID="ButtonTransmit" runat="server" Text="Transmit" OnClick="ButtonTransmit_Click" />
寫銨鈕事件,首先引用namespace using System.Reflection;
有關type.InvokeMember()方法,可以參考msdn:http://msdn.microsoft.com/zh-cn/library/de3dhzwy(v=vs.80).aspx
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;
public partial class InsusUC : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonTransmit_Click(object sender, EventArgs e)
{
string v1 = this.TextboxFirstName.Text.Trim();
string v2 = this.TextboxLastName.Text.Trim();
this.Page.GetType().InvokeMember("ReadUCMessage", BindingFlags.InvokeMethod, null, this.Page, new object[] { v1,v2 });
}
}
演示:
Default.aspx:
復制代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="InsusUC.ascx" TagName="InsusUC" TagPrefix="uc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<uc1:InsusUC ID="InsusUC1" runat="server" />
<br />
<br />
Hi, You input infor as below:<br />
first textbox value:
<asp:Label ID="LabelshowFirstValue" runat="server" Text="" ForeColor="Red"></asp:Label><br />
Second textbox value:
<asp:Label ID="LabelshowLastValue" runat="server" Text="" ForeColor="Red" ></asp:Label>
</div>
</form>
</body>
</html>
Default.aspx.cs,建一個帶兩個參數(shù)的public方法。
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
public void ReadUCMessage(string value1, string value2)
{
this.LabelshowFirstValue.Text = value1;
this.LabelshowLastValue.Text = value2;
}
}
接下來,我們創(chuàng)建一個用戶控件:
復制代碼 代碼如下:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="InsusUC.ascx.cs" Inherits="InsusUC" %>
First Name <asp:TextBox ID="TextboxFirstName" runat="server"></asp:TextBox><br />
Last Name <asp:TextBox ID="TextboxLastName" runat="server"></asp:TextBox><br />
<asp:Button ID="ButtonTransmit" runat="server" Text="Transmit" OnClick="ButtonTransmit_Click" />
寫銨鈕事件,首先引用namespace using System.Reflection;
有關type.InvokeMember()方法,可以參考msdn:http://msdn.microsoft.com/zh-cn/library/de3dhzwy(v=vs.80).aspx
復制代碼 代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Reflection;
public partial class InsusUC : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ButtonTransmit_Click(object sender, EventArgs e)
{
string v1 = this.TextboxFirstName.Text.Trim();
string v2 = this.TextboxLastName.Text.Trim();
this.Page.GetType().InvokeMember("ReadUCMessage", BindingFlags.InvokeMethod, null, this.Page, new object[] { v1,v2 });
}
}
演示:

相關文章
ASP.NET MVC5驗證系列之Remote Validation
這篇文章主要為大家詳細介紹了ASP.NET MVC5驗證系列之Remote Validation,感興趣的小伙伴們可以參考一下2016-07-07.NET?Framework?的項目如何使用?FTP?下載文件
本文專門針對面向?.NET?Framework?的項目,?對于面向?.NET?6?及更高版本的項目,不再支持?FTP,此示例演示如何從?FTP?服務器下載文件,感興趣的朋友跟隨小編一起看看吧2024-01-01WPF實現(xiàn)ScrollViewer滾動到指定控件處
這篇文章主要為大家詳細介紹了WPF實現(xiàn)ScrollViewer滾動到指定控件處,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06.NET 與樹莓派WS28XX 燈帶的顏色漸變動畫效果的實現(xiàn)
所謂顏色漸變動畫,首先,你要確定兩種顏色——起始色和最終色,比如從綠色變成紅色,綠色是起始,紅色是終點。這篇文章主要介紹了.NET 與樹莓派WS28XX 燈帶的顏色漸變動畫,需要的朋友可以參考下2021-12-12.NET?8新預覽版使用?Blazor?組件進行服務器端呈現(xiàn)(項目體驗)
這篇文章主要介紹了.NET?8新預覽版使用?Blazor?組件進行服務器端呈現(xiàn)(項目體驗),這是 Blazor 統(tǒng)一工作的開始,旨在使 Blazor 組件能夠滿足客戶端和服務器端的所有 Web UI 需求,需要的朋友可以參考下2023-04-04ASP.NET MVC4中使用Html.DropDownListFor的方法示例
這篇文章主要介紹了ASP.NET MVC4中使用Html.DropDownListFor的方法,結合實例形式分析了控制器數(shù)據(jù)源及Html.DropDownListFor顯示操作的相關技巧,需要的朋友可以參考下2016-08-08動態(tài)組合SQL語句方式實現(xiàn)批量更新的實例
動態(tài)組合SQL語句方式實現(xiàn)批量更新的實例,需要的朋友可以參考一下2013-03-03.Net使用SuperSocket框架實現(xiàn)WebSocket后端
這篇文章介紹了.Net使用SuperSocket框架實現(xiàn)WebSocket后端,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-01-01