asp.net服务器控件的开发步骤

  1. 新建服务器控件,继承TextBox控件
  2. 添加JS文件,实现验证方法

functionValidateText(valType,text) {

if (valType == "Number") {

//如果是数字

var reg = /^\d+$/;//定义正则表达式,只能输入数字

if(!reg.test(text.value)) {

alert("你输入的不是数字!");

text.value = "";

}

} elseif (valType == "BigChar") {

//如果是大写字母

var reg = /^[A-Z]+$/;

if(!reg.test(text.value)) {

alert("你输入的不是大写字母!");

text.value = "";

}

} elseif (varType == "SmallChar") {

//如果是大写字母

var reg = /^[a-z]+$/;

if(!reg.test(text.value)) {

alert("你输入的不是小写字母!");

text.value = "";

}

} elseif (varType == "Char") {

//如果是大写字母

var reg = /^[a-zA-Z]+$/;

if(!reg.test(text.value)) {

alert("你输入的不是字母!");

text.value = "";

}

}

  1. 3.      右键JS文件 ,将属性的“生成操作”改为“嵌入的资源”
  2. 给控件添加验证属性
  3. 定义枚举:

publicenumValidateType

{

Number,//数字

BigChar,

SmallChar,

Char

}

  1. 添加枚举

privateValidateType validateType;

[Bindable(true)]

[Category("自定义")]

[Localizable(true)]

[Description("验证类型 Number:数字 BigChar:大写字母 SmallChar:小写字母 Char:字母")]

publicValidateType ValidateType

{

get { return validateType; }

set { validateType = value; }

}

  1. 注册资源文件

//注册资源文件 参数1:资源文件的路径 格式为:MyControls.JS.Validate.js 参数2:类型

[assembly: WebResource("MyControls.JS.Validate.js", "text/javascript")]

namespace MyControls

  1. 在控件的预呈现事件里引用JS的资源文件

//预呈现事件

protectedoverridevoid OnPreRender(EventArgs e)

{

base.OnPreRender(e);

//引用资源文件

Page.ClientScript.RegisterClientScriptResource(this.GetType(), "MyControls.JS.Validate.js");

}

  1. 在呈现页面时给控件添加属性

//在呈现页面时给控件添加属性

protectedoverridevoidAddAttributesToRender(HtmlTextWriter writer)

{

base.AddAttributesToRender(writer);

writer.AddAttribute(HtmlTextWriterAttribute.Onchange, "ValidateText(‘"+ValidateType+"‘,this)");

}

  1. 给控制添加呈现内容

protectedoverridevoid Render(HtmlTextWriter writer)

{

base.Render(writer);

if (validateType == ValidateType.Number)

{

writer.Write("请输入数字!");

}

elseif (validateType == ValidateType.BigChar)

{

writer.Write("请输入大写字母!");

}

elseif (validateType == ValidateType.SmallChar)

{

writer.Write("请输入小写字母!");

}

else

{

writer.Write("请输入字母!");

}

}

  1. 添加CSS样式

//预呈现事件

protectedoverridevoid OnPreRender(EventArgs e)

{

base.OnPreRender(e);

//引用资源文件

Page.ClientScript.RegisterClientScriptResource(this.GetType(), "MyControls.JS.Validate.js");

HtmlLink link = newHtmlLink();

//如果页面已经存在此css文件,则不需要注册,否则注册

if (link.FindControl("validateId") == null)

{

link.Href =Page.ClientScript.GetWebResourceUrl(this.GetType(), "MyControls.CSS.Validate.css");

link.Attributes.Add("rel", "stylesheet");

link.Attributes.Add("type", "text/css");

link.ID = "validateId";

Page.Header.Controls.Add(link);//将CSS样式添加到头部

}

  1. }

//在呈现页面时给控件添加属性

protectedoverridevoidAddAttributesToRender(HtmlTextWriter writer)

{

base.AddAttributesToRender(writer);

writer.AddAttribute(HtmlTextWriterAttribute.Onchange, "ValidateText(‘"+ValidateType+"‘,this)");

writer.AddAttribute(HtmlTextWriterAttribute.Class,"text");

  1. }
时间: 2024-08-06 07:57:11

asp.net服务器控件的开发步骤的相关文章

Asp.Net服务器控件开发的Grid实现(一)

使用Asp.Net做Web开发时,系统提供的控件,有时难以达成所要的目的.这时,有多种方式可以解决,比如采用html+js的形式,在前端布局出所要的界面,然后再通过ajax等方式去获取数据,以达成目的. 但这样做,很是费劲,特别是当布局出来的界面需要重用的时候,更加费劲.有人,会直接将该界面的代码进行拷贝,但这对后来的维护必然带来更大的问题.所以就考虑,有没有一种方式可以让布局得到重用,又便于维护的.Asp.Net的控件可以很方便的布局,同时又能在后台中直接操作控件,实现相关的数据逻辑.所以就想

Asp.Net服务器控件开发的Grid实现(二)

我们先来实现Grid类,代码如下: Grid.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.UI; namespace AspNetS

Asp.Net服务器控件开发的Grid实现(四)回发事件

在使用Grid的时候,会用到链接跳转.如果只是普通的链接跳转,那只要使用a标签的href就可以实现.但是有时,我们希望在链接跳转的时候,能够引发回发事件,在后台作出一定的处理,然后再跳转.这样要如何实现呢?我们可以定义一个LinkButtonField来实现.代码如下 using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Text;

第一篇:初识ASP.NET控件开发_第二节:HelloWorld

1)步骤一:新建类库项目:Controls,创建新解决方案:CustomLibrary 2)步骤二:在类库项目中添加"ASP.NET服务器控件"新建项:RenderHelloWorld.cs (也可以是新建类) 3)步骤三:修改RenderHelloWorld.cs代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; using Syst

第一篇:初识ASP.NET控件开发_第一节:控件类及其继承关系

1)System.Web.UI.Control(以下简称Control) Control 类是包括自定义控件.用户控件和页在内的所有 ASP.NET 服务器控件的基类..定义由所有 ASP.NET 服务器控件共享的属性.方法和事件. 命名空间:System.Web.UI程序集:System.Web(在 system.web.dll 中) 2)System.Web.UI.WebControls.WebControl(以下简称WebControl) WebControl 类是 System.Web.

JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法(转)

原文:JQuery EasyUI弹出对话框解决Asp.net服务器控件无法执行后台代码的方法 jquery-easyui是一个基于jquery的图形界面插件,利用easyui可以创建很多好看的网页界面效果,easyui的相关地址是:http://jquery-easyui.wikidot.com/: easyui的中文文档地址是:http://www.easyui.net/,本人也利用easeyUI在做一些页面效果.由于我很喜欢那种弹出的对话框界面,因此在界面中应用了Dialog类来处理一些确认

Asp.Net Web API开发微信后台

如果说用Asp.Net开发微信后台是非主流,那么Asp.Net Web API的微信后台绝对是不走寻常路. 需要说明的是,本人认为Asp.Net Web API在开发很多不同的请求方法的Restful服务的时候是利器,可在开发微信后台的时候,因为微信调用我们这个后台的时候来来去去就一个方法,所以Web API有点杀鸡用牛刀的感觉. 而且由于Web API其实是微软封装了大量的类库,所以会导致后台相当臃肿.所以,不建议Asp.Net Web API开发微信后台. 如果好奇心太强实在想试一下,可以参

ASP.NET服务器控件在IE10浏览器(非兼容模式)下报脚本错误的可能解决办法

关于IE10出现LinkButton点击无效的情况:        一般高配置的系统如Win7旗舰版SP1系统不会出现这种情况,针对家庭普通版和专业版的用户通过测试都有这种情况,对于开发人员要解决不同系统和IE的兼容问题一时有点摸不着头脑,可能微软发布IE10正式版本不久,兼容问题没有考虑周全,或者微软目的是指引用户向着高版本看齐最终目的推销win8,不管怎样,解决方法才是王道:       网上资料显示这种情况是ASP.NET无法检测IE10,导致_doPostBack未定义JavaScrip

007.MVC项目开发步骤

项目出发点(需求) 注册 一.需求分析 用户 二.设计 三.实现(编码阶段): DBMy 1.实现数据库: Users 创建数据库,创建表,根据需要放入必要的初始测试数据 2.代码实现 步骤a.新建项目 ASP.NET MVC空模版 步骤b.写配置文件,设置连接串 步骤c.完成注册功能和加法的步骤类似,使用加法2的步骤 c.1> 创建模型Users,编译 [实体类 和数据库中表基本对应] c.2> 创建控制器Users [控制器-名词] 创建方法(注册)方法名Register [本功能是否是: