`

.net 复合控件的开发

阅读更多
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();

  }

  }

  }



分享到:
评论

相关推荐

    ASP.NET 服务器控件开发技术与实例

    6. 用户控件(User Control):开发者自定义的复合控件,可复用的UI组件。 7. Web部件(Web Part):在SharePoint等环境中用于构建高度可定制的用户界面。 三、控件属性与事件 每个服务器控件都有多个属性,如Text...

    ASP.NET服务器控件开发技术与实例

    "ASP.NET服务器控件开发技术与实例"这本书籍,很可能提供了丰富的示例和详细讲解,帮助读者掌握这些关键概念并将其应用于实际项目中。通过光盘中的实例,读者可以动手操作,加深理解,提升技能。

    《ASP.NET服务器控件开发技术与实例》一书光盘源程序代码

    《ASP.NET服务器控件开发技术与实例》一书的光盘源程序代码是学习和深入理解ASP.NET服务器控件开发的宝贵资源。该资源由C#编程语言和Visual Studio 2005(VS2005)环境构建,旨在为开发者提供实战性的指导和示例,...

    如何ASP.NET中开发复合控件?--vs2003

    本文将详细探讨如何在Visual Studio 2003环境下开发ASP.NET复合控件。 首先,我们需要了解复合控件的基本结构。一个复合控件通常由以下几个部分组成: 1. **基类选择**:ASP.NET提供了`System.Web.UI.WebControls....

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

    用户控件是ASP.NET中的基本自定义UI元素,它是通过将多个标准ASP.NET控件组合在一起,形成一个复合控件来实现的。用户控件可以看作是网页的微型版,具有自己的HTML、服务器控件和脚本。创建用户控件的主要步骤包括:...

    《道不远人——深入解析ASP.NET 2.0控件开发》书中源码

    《道不远人——深入解析ASP.NET 2.0控件开发》是一本专注于ASP.NET 2.0技术的书籍,其核心内容在于讲解如何进行高效、实用的ASP.NET控件开发。这本书通过丰富的实例和详尽的解析,帮助读者深入理解控件的工作原理,...

    ASP.NET 服务器控件开发

    ASP.NET 服务器控件开发是构建动态Web应用程序的关键部分,它允许开发者通过拖放的方式在网页上添加功能丰富的交互元素。这些控件是由.NET Framework提供的一系列预定义组件,能够简化编码并提高开发效率。本主题将...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    第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控件开发教程

    ASP.NET控件开发是Web应用程序开发中的核心组成部分,它允许开发者构建交互性强、功能丰富的用户界面。本教程针对初学者,旨在提供一个全面的ASP.NET控件开发基础,帮助你快速掌握这一技术。 1. **ASP.NET控件基础*...

    asp.net自定义控件开发实例(学习)

    ASP.NET自定义控件开发是Web应用程序开发中的一个重要环节,它允许开发者根据需求创建具有特定功能和外观的组件。在本实例中,我们将探讨如何基于ASP.NET平台进行自定义控件的开发,以及如何通过实践来提升自己的...

    ASP.NET分页控件源码

    用户控件(UserControl)是将HTML元素、服务器控件和其他UI元素组合在一起的复合控件,可以在多个页面中重复使用。在这个上下文中,UserControl可能是封装了分页逻辑和界面的自定义组件,便于在整个项目中集成和维护...

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    在第1章中,作者介绍了服务器控件的基础,包括自定义服务器控件的创建、控件在软件开发中的作用,以及如何提升控件开发能力。同时,介绍了可继承的控件基类,以及如何开发和运行一个简单的控件。控件生命周期作为...

    Asp.net自定义控件

    接下来是Asp.net复合控件,也称为用户控件(UserControl)。复合控件是由多个基本控件组成的复杂UI元素。开发者可以通过在.ascx文件中拖放控件并编写相应的代码来创建复合控件。这些控件可以像单个控件一样在页面上...

    如何ASP.NET中开发复合控件?

    24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?24.如何ASP.NET中开发复合控件?

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

    《庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术》是一本深入探讨ASP.NET控件开发的书籍,旨在帮助开发者提升对ASP.NET技术的理解和应用水平。书中通过70多个实例详细讲解了控件开发的各个方面,并分析了系统基类...

    ASP.NET自定义控件实例教程

    此外,还可以创建复合控件,通过组合多个基本控件实现更复杂的功能。 3. 注册与使用:在使用自定义控件前,需要在页面或Web.config文件中进行注册,以便ASP.NET框架可以识别和处理这些控件。 二、自定义控件的创建...

    asp.net服务器控件与组件开发

    首先,ASP.NET服务器控件大致分为三类:HTML控件、Web服务器控件和Composite Control(复合控件)。HTML控件,如`<input>`或`<button>`,直接映射到HTML元素,但可以受益于ASP.NET的事件处理和数据绑定能力。Web...

Global site tag (gtag.js) - Google Analytics