using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.ComponentModel.Design;
namespace WebControlLibrary{
public class 用户登录: CompositeControl {
//声明变量
private Button _button;//登录按钮
private TextBox _textBoxname;//账号输入筐
private TextBox _textBoxpassword;//密码输入筐
private Label _labcode;
private CheckBox _checkbox;
private string names, passwords, code;//接受用户的密码和账号等信息
private bool _jizhu=false;
private static readonly object EventSubmitKey = new object();
private logincjing.用户操作接口 _用户操作=null;
用户登录(logincjing.用户操作接口 操作接口){
_用户操作 = 操作接口;
}
//定义属性ButtonText,用于指定按钮上的文字
[
Bindable(true), Category("Appearance"), DefaultValue(""), Description("获取或设置显示显示在按钮上的文字")
]
public string ButtonText {
get {
EnsureChildControls();
return _button.Text;
}
set {
EnsureChildControls();
_button.Text = value;
}
}
//定义属性labcode,用于指定按钮上的文字
[
Bindable(true), Category("Appearance"), DefaultValue(""), Description("获取或设置显示显示在按钮上的文字")
]
public string labText
{
get
{
EnsureChildControls();
return _labcode.Text;
}
set
{
EnsureChildControls();
_labcode.Text =value;
}
}
// 定义密码筐
[
Bindable(true), Category("Appearance"), DefaultValue(""), Description("获取或设置文本框输入文本")
]
public TextBoxMode TextMode {
get
{
EnsureChildControls();
return _textBoxpassword.TextMode;
}
set{
EnsureChildControls();
_textBoxpassword.TextMode = value;
}
}
// 实现事件属性结构
public event EventHandler Submit {
add {
Events.AddHandler(EventSubmitKey, value);
}
remove {
Events.RemoveHandler(EventSubmitKey, value);
}
}
// 实现OnSubmit
protected virtual void OnSubmit(EventArgs e) {
//这里是处理单击事件的过程
this.names = _textBoxname.Text.ToString().Trim();
this.passwords= _textBoxpassword.Text.ToString().Trim();
this.code = _labcode.Text.ToString().Trim();
if(_checkbox.Checked){
_jizhu = true;
}
//this._button.Text = this.names + this.passwords;
//用户登录 测试 = new 用户登录();
_用户操作.登录(names,passwords,_jizhu);
EventHandler SubmitHandler = (EventHandler)Events[EventSubmitKey];
if (SubmitHandler!= null) {
SubmitHandler(this, e);
}
}
// 实现Submit事件引发的事件处理程序
private void _button_Click(Object source, EventArgs e) {
OnSubmit(EventArgs.Empty);
}
// 重写ICompositeControlDesignerAccessor接口的RecreateChildContrls方法
protected override void RecreateChildControls() {
EnsureChildControls();
}
//重写CreateChildControls方法,将子控件添加到复合控件中
protected override void CreateChildControls() {
Controls.Clear();
_button = new Button();
_textBoxname = new TextBox();
_textBoxpassword = new TextBox();
_labcode = new Label();
_checkbox = new CheckBox();
_labcode.Text = new Random(2).Next(3).ToString();
_button.ID = "btn";
_button.Click += new EventHandler(_button_Click);
this.Controls.Add(_button);
this.Controls.Add(_textBoxname);
this.Controls.Add(_textBoxpassword);
}
//重写Render方法,呈现控件中其他的HTML代码
protected override void Render(HtmlTextWriter output) {
output.AddAttribute(HtmlTextWriterAttribute.Border, "0px");
output.AddAttribute(HtmlTextWriterAttribute.Cellpadding, "5px");
output.AddAttribute(HtmlTextWriterAttribute.Cellspacing, "0px");
output.RenderBeginTag(HtmlTextWriterTag.Table);
output.RenderBeginTag(HtmlTextWriterTag.Tr);
output.RenderBeginTag(HtmlTextWriterTag.Td);
_textBoxname.RenderControl(output);
_textBoxpassword.RenderControl(output);
_labcode.RenderControl(output);
_checkbox.RenderControl(output);
output.RenderEndTag();
output.RenderBeginTag(HtmlTextWriterTag.Td);
_button.RenderControl(output);
output.RenderEndTag();
output.RenderEndTag();
output.RenderEndTag();
}
}
}
分享到:
相关推荐
6. 用户控件(User Control):开发者自定义的复合控件,可复用的UI组件。 7. Web部件(Web Part):在SharePoint等环境中用于构建高度可定制的用户界面。 三、控件属性与事件 每个服务器控件都有多个属性,如Text...
"ASP.NET服务器控件开发技术与实例"这本书籍,很可能提供了丰富的示例和详细讲解,帮助读者掌握这些关键概念并将其应用于实际项目中。通过光盘中的实例,读者可以动手操作,加深理解,提升技能。
《ASP.NET服务器控件开发技术与实例》一书的光盘源程序代码是学习和深入理解ASP.NET服务器控件开发的宝贵资源。该资源由C#编程语言和Visual Studio 2005(VS2005)环境构建,旨在为开发者提供实战性的指导和示例,...
本文将详细探讨如何在Visual Studio 2003环境下开发ASP.NET复合控件。 首先,我们需要了解复合控件的基本结构。一个复合控件通常由以下几个部分组成: 1. **基类选择**:ASP.NET提供了`System.Web.UI.WebControls....
用户控件是ASP.NET中的基本自定义UI元素,它是通过将多个标准ASP.NET控件组合在一起,形成一个复合控件来实现的。用户控件可以看作是网页的微型版,具有自己的HTML、服务器控件和脚本。创建用户控件的主要步骤包括:...
《道不远人——深入解析ASP.NET 2.0控件开发》是一本专注于ASP.NET 2.0技术的书籍,其核心内容在于讲解如何进行高效、实用的ASP.NET控件开发。这本书通过丰富的实例和详尽的解析,帮助读者深入理解控件的工作原理,...
ASP.NET 服务器控件开发是构建动态Web应用程序的关键部分,它允许开发者通过拖放的方式在网页上添加功能丰富的交互元素。这些控件是由.NET Framework提供的一系列预定义组件,能够简化编码并提高开发效率。本主题将...
第16章 asp.net ajax控件开发——客户端 563 16.1 asp.net ajax框架概述 563 16.2 ajax library对客户端面向对象功能支持 564 16.2.1 命名空间及type和function类 565 16.2.2 接口类型 568 16.2.3 类类型以及...
ASP.NET控件开发是Web应用程序开发中的核心组成部分,它允许开发者构建交互性强、功能丰富的用户界面。本教程针对初学者,旨在提供一个全面的ASP.NET控件开发基础,帮助你快速掌握这一技术。 1. **ASP.NET控件基础*...
ASP.NET自定义控件开发是Web应用程序开发中的一个重要环节,它允许开发者根据需求创建具有特定功能和外观的组件。在本实例中,我们将探讨如何基于ASP.NET平台进行自定义控件的开发,以及如何通过实践来提升自己的...
用户控件(UserControl)是将HTML元素、服务器控件和其他UI元素组合在一起的复合控件,可以在多个页面中重复使用。在这个上下文中,UserControl可能是封装了分页逻辑和界面的自定义组件,便于在整个项目中集成和维护...
在第1章中,作者介绍了服务器控件的基础,包括自定义服务器控件的创建、控件在软件开发中的作用,以及如何提升控件开发能力。同时,介绍了可继承的控件基类,以及如何开发和运行一个简单的控件。控件生命周期作为...
接下来是Asp.net复合控件,也称为用户控件(UserControl)。复合控件是由多个基本控件组成的复杂UI元素。开发者可以通过在.ascx文件中拖放控件并编写相应的代码来创建复合控件。这些控件可以像单个控件一样在页面上...
24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?
《庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术》是一本深入探讨ASP.NET控件开发的书籍,旨在帮助开发者提升对ASP.NET技术的理解和应用水平。书中通过70多个实例详细讲解了控件开发的各个方面,并分析了系统基类...
此外,还可以创建复合控件,通过组合多个基本控件实现更复杂的功能。 3. 注册与使用:在使用自定义控件前,需要在页面或Web.config文件中进行注册,以便ASP.NET框架可以识别和处理这些控件。 二、自定义控件的创建...
首先,ASP.NET服务器控件大致分为三类:HTML控件、Web服务器控件和Composite Control(复合控件)。HTML控件,如`<input>`或`<button>`,直接映射到HTML元素,但可以受益于ASP.NET的事件处理和数据绑定能力。Web...