用户控件
左直拳
网页页面一些经常用到的,逻辑意义上聚集成一块的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又重新变回默认值张三了。就是说,用户控件的属性值很容易丢失。当然可以任劳任怨,不厌其烦地在调用页一遍遍地赋值,但终究不是好的办法。
可以将比较重要的属性改用一些系统控件来保存,如HTML的hidden控件。象上面的例子,设置一个
<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中,用户控件和自定义控件是两种重要的组件,它们扩展了.NET Framework的内置控件,帮助开发者创建具有特定功能和交互性的界面元素。 **用户控件(User Control)** 用户控件是ASP.NET中的基本自定义UI元素...
本小程序主要展示WinForm用户控件的使用及相互之间的通信,这里主要是通过事件进行实现的,第一个用户控件:(UCForm1.cs)主要包含一个文本框,第二个用户控件:(UCForm2.cs)包含了一个DataGridView和一个文本框,...
在ASP.NET 2.0开发中,Web用户控件(User Control)是一种强大的工具,它允许开发者创建可重用的自定义控件,这些控件可以在多个页面中使用,提高代码复用性和维护性。本篇文章将深入探讨如何在运行时动态地添加和...
### 用户控件传值问题终极解决方法 在Web开发中,用户控件(User Control)是一种非常实用的技术,它能够帮助开发者实现代码重用、提高开发效率。然而,在实际使用过程中,用户控件与父页面之间的数据传递经常成为...
在C# WinForm开发中,用户控件(User Control)是一种自定义的UI元素,它由多个基本控件组合而成,具有更复杂的功能和交互。本文将详细介绍如何创建和使用C# WinForm用户控件,以及如何实现增删改查、导入导出和审核...
在C# WinForm应用开发中,用户控件(UserControl)是一种自定义控件,它允许开发者组合多个标准控件并作为一个单一的组件使用。在实际项目中,我们经常需要在窗体(Form)和用户控件之间传递数据,以便实现更复杂的...
在C# WinForm应用开发中,动态添加和删除用户控件是常见的需求,尤其是在构建可扩展、可配置的用户界面时。本示例项目“C# winform动态添加和删除用户控件.rar”旨在帮助开发者掌握这一技术。下面将详细解释相关知识...
在探讨如何实例化一个用户控件并动态添加到页面中时,我们首先需要理解几个关键概念:用户控件、实例化、动态加载以及ASP.NET框架中的相关操作。本篇文章将深入解析这一过程,并通过示例代码来具体说明。 ### 用户...
【ASP.NET的用户控件】 ASP.NET用户控件是一种自定义的、可重用的页面组件,它们允许开发者创建自己的控件,以满足特定的页面功能需求。这些控件不仅扩展了ASP.NET服务端控件的功能,还提高了代码的可维护性和可...
在.NET框架中,用户控件(User Control)是一种自定义的UI组件,它允许开发者将多个Windows Forms控件或Web Forms控件组合成一个单一的、可重用的单元。这个实例显然关注的是如何创建和使用.NET用户控件,以及如何在...
在ASP.NET中,用户控件(User Control)是一种强大的功能,允许开发者创建可重用的、自定义的UI组件。用户控件可以看作是轻量级的自定义控件,它们结合了多个内置控件的功能,或者实现了特定的业务逻辑,以便在多个...
ASP.NET用户控件是.NET Framework框架中用于构建可重用组件的重要工具,它们在Web应用程序开发中扮演着关键角色。用户控件(User Control)允许开发者创建自定义的UI元素,这些元素可以像内置服务器控件一样在网页上...
在C#编程中,自定义用户控件是创建具有特定功能和界面的UI元素的关键步骤。这使得开发者能够根据项目需求扩展.NET Framework的基础控件集。在这个“c# 自定义用户控件例(含自定义方法和事件)”中,我们将深入探讨...
在C#编程中,用户控件(User Control)是一种非常重要的概念,它允许开发者将多个基本控件组合在一起,创建出具有特定功能的复合控件。在这个"C# 用户控件编写实例"中,我们将深入探讨如何创建一个自定义控件,实现...
自定义用户控件是提升应用程序功能和界面个性化的重要手段。在这个场景中,我们关注的是一个特定的自定义控件,即基于PictureBox的扩展。PictureBox是.NET Framework提供的一个标准控件,用于显示图像,而自定义用户...
自定义用户控件是C#编程中的一个重要概念,允许开发者扩展系统提供的标准控件功能,或者创建全新的控件来满足特定需求。在VS2010这样的开发环境中,创建和使用自定义用户控件是实现这一目标的关键步骤。 首先,让...
在C#编程环境中,用户控件(User Control)是一种自定义控件,它允许开发者将多个标准控件组合成一个单一的、具有特定功能的组件。这个“C#用户控件创建与使用”主题旨在教导初学者如何创建、设计以及在Windows应用...
ASP.NET自定义用户控件是开发高效、可重用网页应用程序的重要组成部分。它允许开发者创建具有特定功能的自定义组件,这些组件可以嵌入到网页中,并与其他ASP.NET控件一起工作。在ASP.NET中,自定义用户控件提供了一...