继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

使用反射把用户控件(ASCX)传至网页(ASPX)

代码写到手抽筋
关注TA
已关注
手记 294
粉丝 26
获赞 113

用户控件向网页传递值,方法非常之多,此博文尝试使用反射来实现。在站点中,建一个网页以及一个用户控件。 网页切换至设计模式,拉用户控件至网页上。

Default.aspx:

View Code

<%@ 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,建一个带两个参数的public方法。

View Code

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


接下来,我们创建一个用户控件:

View Code

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

View Code

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


演示:

 

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP