利用委托把用户控件的值显示于网页案例应用

 更新时间:2013年02月07日 11:10:59   作者:  
用户控件(UserControl)是集成一个功能,需要处理好的数据,然后存数据库中并显示于网页上,让用户能检测到处理的数据情况,接下来将介绍利用委托把用户控件的值显示于网页上,感兴趣的朋友可以了解下
Asp.net开发要求,就是用户控件(UserControl)是集成一个功能,需要处理好的数据,然后存数据库中并显示于网页上,让用户能检测到处理的数据情况。

本演示中,Insus.NET只是作了一个简单的举例而已,并应用了委托来实现。为了让大家更能理解,可以先看看操作动画演示:

在你新建一站点上,创建一个PageB.aspx网页以及UcB.ascx用户控件,在UcB.ascx上拉一个TextBox和CheckBox以及Button控件:
复制代码 代码如下:

UcB.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="UcB.ascx.cs" Inherits="UcB" %>
<fieldset>
<legend>User control field</legend>
Catalog:
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
Enabled:
<asp:CheckBox ID="CheckBox1" runat="server" /><br />
<asp:Button ID="Button1" runat="server" Text="Process..." OnClick="Button1_Click" />
</fieldset>

在UcB.ascx.cs代码页中,写一个委托属性,将用来存储所有用户控件中处理的数据。
复制代码 代码如下:

View Code
private Delegate _InsusData;
public Delegate InsusData
{
set
{
_InsusData = value;
}
}

然后在Button的OnClick事件中,把数据存入刚才写好的属性:
复制代码 代码如下:

View Code
protected void Button1_Click(object sender, EventArgs e)
{
object[] data = new object[2];
data[0] = this.TextBox1.Text.Trim ();
data[1] = this.CheckBox1.Checked;
_InsusData.DynamicInvoke(data);
}

完整的UcB.ascx.cs代码:
复制代码 代码如下:

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 UcB : System.Web.UI.UserControl
{
private Delegate _InsusData;
public Delegate InsusData
{
set
{
_InsusData = value;
}
}
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
object[] data = new object[2];
data[0] = this.TextBox1.Text.Trim ();
data[1] = this.CheckBox1.Checked;
_InsusData.DynamicInvoke(data);
}
}

到这里,我需要把用户控件UcB拉到网页PageB中,并放置好相应的控件来显示数据:
复制代码 代码如下:

PageB.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PageB.aspx.cs" Inherits="PageB" %>
<%@ Register Src="UcB.ascx" TagName="UcB" TagPrefix="uc1" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<uc1:UcB ID="UcB1" runat="server" />
<br />
<fieldset>
<legend>Page Content
</legend>
Show User Control Data:<br />
Catalog:
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
<br />
Enabled:
<asp:CheckBox ID="CheckBox1" runat="server" Enabled="false" /><br />
</fieldset>
</form>
</body>
</html>

在PageB.aspx.cs代码内,宣告一个委托方法,并带两个参数:
复制代码 代码如下:

private delegate void GetUserControlData(string catalog, bool isEnable);

再写一个与刚才写好委托方法(相同的参数)的方法,用参数为页面的控件显示数据:
复制代码 代码如下:

void ShowDataToPage(string catalog, bool isEnable)
{
this.Label1.Text = catalog;
this.CheckBox1.Checked = isEnable;
}

最后是在PageB.aspx.cs内的Page_Load事件中,去实现获取用户控件的数据:
复制代码 代码如下:

protected void Page_Load(object sender, EventArgs e)
{
GetUserControlData obj = new GetUserControlData(ShowDataToPage);
this.UcB1.InsusData = obj;
}

OK,完整的PageB.aspx.cs代码:
复制代码 代码如下:

PageB.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class PageB : System.Web.UI.Page
{
private delegate void GetUserControlData(string catalog, bool isEnable);
protected void Page_Load(object sender, EventArgs e)
{
GetUserControlData obj = new GetUserControlData(ShowDataToPage);
this.UcB1.InsusData = obj;
}
void ShowDataToPage(string catalog, bool isEnable)
{
this.Label1.Text = catalog;
this.CheckBox1.Checked = isEnable;
}
}

相关文章

  • Asp.net MVC使用swupload实现多图片上传功能

    Asp.net MVC使用swupload实现多图片上传功能

    这篇文章主要为大家详细介绍了Asp.net MVC使用swupload实现多图片上传功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 如何在ASP.NET Core中给上传图片功能添加水印实例代码

    如何在ASP.NET Core中给上传图片功能添加水印实例代码

    这篇文章主要给大家介绍了关于如何在ASP.NET Core中给上传图片功能添加水印的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • ASP.NET Core 集成 React SPA应用的步骤

    ASP.NET Core 集成 React SPA应用的步骤

    这篇文章主要介绍了ASP.NET Core 集成 React SPA应用的步骤,帮助大家更好的理解和学习使用.net技术,感兴趣的朋友可以了解下
    2021-04-04
  • WPF使用Canvas画布面板布局

    WPF使用Canvas画布面板布局

    这篇文章介绍了WPF使用Canvas画布面板布局的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • ASP.NET Core使用AutoMapper组件

    ASP.NET Core使用AutoMapper组件

    这篇文章介绍了ASP.NET Core使用AutoMapper组件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-04-04
  • 在asp.NET 中使用SMTP发送邮件的实现代码

    在asp.NET 中使用SMTP发送邮件的实现代码

    本文简单介绍了SMTP协议(RFC2554)发送邮件的过程,并讨论了在 .NET 中使用SMTP发送邮件由简到繁的三种不同方案、各自可能遇到的问题及其解决办法
    2011-05-05
  • Asp.Net网站优化系列之数据库的优化措施与索引优化方法

    Asp.Net网站优化系列之数据库的优化措施与索引优化方法

    索引的作用就类似于书的目录,书的目录会按照章节的顺序排列,会指想某一张的位置。这样如果在一本数百页的书里面查找某个章节位置的时候,我们就可以只扫描书的目录,扫描的范围缩小了n倍,查询的效率自然就提高了。
    2010-06-06
  • asp.net使用jquery模板引擎jtemplates呈现表格

    asp.net使用jquery模板引擎jtemplates呈现表格

    这篇文章主要介绍了asp.net使用jquery模板引擎jtemplates呈现表格的示例,大家参考使用吧
    2014-01-01
  • asp.net 包含文件的方法

    asp.net 包含文件的方法

    ASP.NET文件包含的方法基本与ASP文件包含差不多!
    2010-03-03
  • .NET垃圾回收器原理及使用

    .NET垃圾回收器原理及使用

    这篇文章介绍了.NET垃圾回收器原理及使用方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01

最新评论