`
totoxian
  • 浏览: 1074361 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

用户控件

阅读更多

用户控件

左直拳

网页页面一些经常用到的,逻辑意义上聚集成一块的HTML标签、控件,甚至包括javascript代码,可以提炼封装成用户控件。

这样做有很多好处:

1、有利于重用

2、封装一些代码,屏蔽一些细节,逻辑清晰,使人能够更专注大方面的问题

3、控件在设计时只须用鼠标拖来拖去,很方便,很爽

4、控件可以应用缓存,使得一些页面能够局部缓存,提高了性能

5、……

编写用户控件很简单,我觉得有两点要注意。

1、控件属性值容易丢失问题。

通常,一个控件都会有属性。如,控件userCtrl有属性Name

private string _Name = “张三”;

public string Name

{

get{ return _Name;}

set{ _Name = value;}

}

由于网页是无状态的,刷新后,如果不在调用页面对userCtrl.Name进行赋值,则Name又重新变回默认值张三了。就是说,用户控件的属性值很容易丢失。当然可以任劳任怨,不厌其烦地在调用页一遍遍地赋值,但终究不是好的办法。

可以将比较重要的属性改用一些系统控件来保存,如HTMLhidden控件。象上面的例子,设置一个

<input type=”hidden” id=”txtName” runat=”server” value=”张三”/>

则上面的属性Name可改为

public string Name

{

get{return txtName.Value;}

set{txtName.Value = value;};

}

这样在页面生存期间,控件的属性Name就不会丢失了。不要用ViewState,因为如果调用页将EnableViewState = false,就不起作用了。

2、在控件里面加入事件功能。

1)、事件的本质是委托。首先,声明一个委托:

public delegate void ClickEventHandler(object sender, EventArgs e);

2)、然后用此委托声明事件:

public event ClickEventHandler SureClick;

3)、编写事件处理函数

private void OnSureClick(EventArgs e)

{

if (SureClick != null)

{//执行受委托的方法

SureClick(this, e);

}

}

注意if (SureClick != null) 这句,因为SureClick是个委托(也是事件),如果不为空,也就是受到了委托,即调用页面将函数或方法赋给了它。这里这个函数的作用就是去处理调用页面要执行的函数或方法。

4)、在用户控件上加个button

<asp:button id=”Button<chmetcnv w:st="on" tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="1" unitname="”">1”</chmetcnv> style=”display:none” runat=”server”/>

在控件代码里,有相应的事件:

protected void Button1_Click(object sender, EventArgs e)

{

……

This.OnSureClick(e);//触发事件处理函数

}

5)、在调用页面将待处理的函数或方法赋给SureClick

<uc2:myCtrl ID="MyCtrl1" runat="server" OnSureClick="待处理的函数或方法名" />

这样子控件就有了事件支持功能。示例中的事件是点击用户控件中那个button,调用页即可得到响应并处理自己要做的事情。

另外,事件参数e的类型可以自己定制。EventArgs是系统给出的类型,如果有需要,也可以换上自己的。比如,可以这样写一个e:

public class MyEventArgs : EventArgs

{

private int _xID = -1;

public int xID

{

get

{

return _xID;

}

}

public MyEventArgs(int nxID) : base()

{

_xID = nxID;

}

}

分享到:
评论

相关推荐

    ASP.NET用户控件和自定义控件

    在ASP.NET中,用户控件和自定义控件是两种重要的组件,它们扩展了.NET Framework的内置控件,帮助开发者创建具有特定功能和交互性的界面元素。 **用户控件(User Control)** 用户控件是ASP.NET中的基本自定义UI元素...

    C#WinForm用户控件间相互传值

    本小程序主要展示WinForm用户控件的使用及相互之间的通信,这里主要是通过事件进行实现的,第一个用户控件:(UCForm1.cs)主要包含一个文本框,第二个用户控件:(UCForm2.cs)包含了一个DataGridView和一个文本框,...

    动态增加和删除多个web用户控件

    在ASP.NET 2.0开发中,Web用户控件(User Control)是一种强大的工具,它允许开发者创建可重用的自定义控件,这些控件可以在多个页面中使用,提高代码复用性和维护性。本篇文章将深入探讨如何在运行时动态地添加和...

    用户控件传值问题终极解决方法

    ### 用户控件传值问题终极解决方法 在Web开发中,用户控件(User Control)是一种非常实用的技术,它能够帮助开发者实现代码重用、提高开发效率。然而,在实际使用过程中,用户控件与父页面之间的数据传递经常成为...

    c#winform用户控件的制作和使用步骤

    在C# WinForm开发中,用户控件(User Control)是一种自定义的UI元素,它由多个基本控件组合而成,具有更复杂的功能和交互。本文将详细介绍如何创建和使用C# WinForm用户控件,以及如何实现增删改查、导入导出和审核...

    c# winform usercontrol用户控件传值

    在C# WinForm应用开发中,用户控件(UserControl)是一种自定义控件,它允许开发者组合多个标准控件并作为一个单一的组件使用。在实际项目中,我们经常需要在窗体(Form)和用户控件之间传递数据,以便实现更复杂的...

    C# winform动态添加和删除用户控件.rar

    在C# WinForm应用开发中,动态添加和删除用户控件是常见的需求,尤其是在构建可扩展、可配置的用户界面时。本示例项目“C# winform动态添加和删除用户控件.rar”旨在帮助开发者掌握这一技术。下面将详细解释相关知识...

    实例化一个用户控件,动态添加一个用户控件

    在探讨如何实例化一个用户控件并动态添加到页面中时,我们首先需要理解几个关键概念:用户控件、实例化、动态加载以及ASP.NET框架中的相关操作。本篇文章将深入解析这一过程,并通过示例代码来具体说明。 ### 用户...

    ASP.NET的用户控件

    【ASP.NET的用户控件】 ASP.NET用户控件是一种自定义的、可重用的页面组件,它们允许开发者创建自己的控件,以满足特定的页面功能需求。这些控件不仅扩展了ASP.NET服务端控件的功能,还提高了代码的可维护性和可...

    .net用户控件实例

    在.NET框架中,用户控件(User Control)是一种自定义的UI组件,它允许开发者将多个Windows Forms控件或Web Forms控件组合成一个单一的、可重用的单元。这个实例显然关注的是如何创建和使用.NET用户控件,以及如何在...

    asp.net用户控件使用实例

    在ASP.NET中,用户控件(User Control)是一种强大的功能,允许开发者创建可重用的、自定义的UI组件。用户控件可以看作是轻量级的自定义控件,它们结合了多个内置控件的功能,或者实现了特定的业务逻辑,以便在多个...

    asp.net用户控件

    ASP.NET用户控件是.NET Framework框架中用于构建可重用组件的重要工具,它们在Web应用程序开发中扮演着关键角色。用户控件(User Control)允许开发者创建自定义的UI元素,这些元素可以像内置服务器控件一样在网页上...

    c# 自定义用户控件例(含自定义方法和事件)

    在C#编程中,自定义用户控件是创建具有特定功能和界面的UI元素的关键步骤。这使得开发者能够根据项目需求扩展.NET Framework的基础控件集。在这个“c# 自定义用户控件例(含自定义方法和事件)”中,我们将深入探讨...

    C# 用户控件编写实例

    在C#编程中,用户控件(User Control)是一种非常重要的概念,它允许开发者将多个基本控件组合在一起,创建出具有特定功能的复合控件。在这个"C# 用户控件编写实例"中,我们将深入探讨如何创建一个自定义控件,实现...

    C# 自定义用户控件(PictureBox)

    自定义用户控件是提升应用程序功能和界面个性化的重要手段。在这个场景中,我们关注的是一个特定的自定义控件,即基于PictureBox的扩展。PictureBox是.NET Framework提供的一个标准控件,用于显示图像,而自定义用户...

    C# 自定义用户控件

    自定义用户控件是C#编程中的一个重要概念,允许开发者扩展系统提供的标准控件功能,或者创建全新的控件来满足特定需求。在VS2010这样的开发环境中,创建和使用自定义用户控件是实现这一目标的关键步骤。 首先,让...

    ASP.NET 开发和使用Web用户控件

    【ASP.NET 开发和使用Web用户控件】 在ASP.NET框架中,Web用户控件是开发者构建可重用UI组件的重要工具。这篇文章将详细介绍如何创建、使用和扩展Web用户控件,以满足复杂的网页开发需求。 1. **简介** 当内置的...

    C#用户控件创建与使用

    在C#编程环境中,用户控件(User Control)是一种自定义控件,它允许开发者将多个标准控件组合成一个单一的、具有特定功能的组件。这个“C#用户控件创建与使用”主题旨在教导初学者如何创建、设计以及在Windows应用...

    asp.net 自定义用户控件 事件

    ASP.NET自定义用户控件是开发高效、可重用网页应用程序的重要组成部分。它允许开发者创建具有特定功能的自定义组件,这些组件可以嵌入到网页中,并与其他ASP.NET控件一起工作。在ASP.NET中,自定义用户控件提供了一...

Global site tag (gtag.js) - Google Analytics