asp.net(c#)自定义控件

原创 2007年09月12日 11:47:00

实现自定义文本框:
-------------------------------------------------------------------------------------------------------------------------------------------
using System;
using System.Collections;
using System.ComponentModel;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections.Specialized;

namespace ClassLibrary1
{
 [DefaultProperty("s"),
 ToolboxData("<{0}:WebCustomControl1 runat=server></{0}:WebCustomControl1>")]
 public class WebCustomControl1 : System.Web.UI.WebControls.TextBox
 {

  [Bindable(true),
  Category("Appearance"),
  DefaultValue("")]
  public string s
  {
   get
   {
    return s;
   }

   set
   {
    s = value;
   }
  }
/// <summary>
/// 重写TextBox的Text属性
/// </summary>
  public override string Text
  {
   get
   {
    return (string)ViewState["Text"]==null?"":(string)ViewState["Text"];
   }
   set
   {
    ViewState["Text"] = value;
   }
  }

/// <summary>
/// 实现接口IPostBackDataHandler的类
/// </summary>
/// <param name="postDataKey"></param>
/// <param name="postCollection"></param>
/// <returns></returns>
  public virtual bool LoadPostData(string postDataKey, NameValueCollection postCollection)
  {
   String presentValue = Text;
   String postedValue = postCollection[postDataKey];

   if (presentValue == null || !presentValue.Equals(postedValue))
   {
    Text = postedValue;
    return true;
   }

   return false;
  }
  /// <summary>
  /// 重写Render函数,实现数据的输出
  /// </summary>
  /// <param name="output"></param>
        protected override void Render(HtmlTextWriter output)
        {
   output.Write("<INPUT type= text id=/"t1/" name = "+this.UniqueID+ " value = " + this.Text + " onblur=/"return checkbox()/">");
   string span="<span id=/"t2/"><font color=#000000 size=2>请输入五个以上的字符</font></span>";
   //定义一个span元素
   string jscript="/n<script>/nfunction checkbox(){/n/tvar t=document.getElementById('t1');"+
    "/n/tvar s=document.getElementById('t2');/n/tif(t.value.length<5){"+
    "/n/t/ts.innerHTML='<font color=#FF0000 size=2>长度不符合要求</font>';}"+
    "/n/telse{/n/t/ts.innerHTML='<font color=Teal size=2>输入正确</font>';/n}/n</script>";
   //实现对文本框的数据判断的js代码
   string s="/n"+span+"/n"+jscript;
   output.Write(s);//数据输出
        }
    }

--------------------------------------------------------------------------------------------------------------------------------------------

实现自定义按钮控件
-------------------------------------------------------------------------------------------------------------------------------

using System;
using System.Web.UI;

namespace CustomControls

 public class MyButton: Control, IPostBackEventHandler
 {    
  // Defines the Click event.
  public event EventHandler Click;
     
  // Invokes delegates registered with the Click event.
  protected virtual void OnClick(EventArgs e)
  {    
   if (Click != null)
   {
    Click(this, e);
   }
  }
     
  // Method of IPostBackEventHandler that raises change events.
  public void RaisePostBackEvent(string eventArgument)
  {    
   OnClick(EventArgs.Empty);
  }
     
  protected override void Render(HtmlTextWriter output)
  {    
   output.Write("<INPUT TYPE=submit name=" + this.UniqueID +
    " Value='Click Me' />");
  }
 }   
}

相关文章推荐

asp.net 编写自定义控件

  • 2014年11月04日 13:43
  • 180KB
  • 下载

asp.net 避免用户自定义控件的父类代码多次运行

在一个asp.net项目中,用户自定义控件是很经常使用的,一个项目中一般都会有多个用户自定义控件,而为了代码重用,通常这些控件都会继承一个父类, 一个页面还会引用多个用户自定义控件。 这种情况如果...

ASP.NET自定义控件教程.pdf

  • 2013年08月18日 16:50
  • 742KB
  • 下载

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

  • 2010年04月08日 14:28
  • 742KB
  • 下载

ASP.NET自定义控件开发示例(二)

 接着上次的内容。接下来我们让它的时间能不停走动。新建一个类TipTime3,新建脚本文件TipTime3.js,将TipTime2代码都复制过来。 为了能将C#的DateTime对象转换为...
  • killcwd
  • killcwd
  • 2014年06月12日 15:29
  • 398

DatePicker asp.net 自定义控件

  • 2010年04月05日 09:57
  • 14KB
  • 下载

Asp.net MVC3 自定义HtmlHelper控件

在asp.net mvc 中每一个Html控件都返回了MvcHtmlString ,他继承了HtmlString。 下面自定义一个关于显示男女性别的自定义Html控件,使在创建页面时,可以直接调用该...
  • pasic
  • pasic
  • 2011年12月28日 23:01
  • 7038

asp.net自定义分页控件

  • 2010年05月09日 16:27
  • 4KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:asp.net(c#)自定义控件
举报原因:
原因补充:

(最多只允许输入30个字)