ASP.NET自定义控件组件开发 第一章 第二篇 接着待续

很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例子,想选中一些好 上手的例子,这样,可能一些例子大家以前都见过,但是我想说:同样是弹钢琴,同样一首“命运交响曲 ”,有的人弹的让人荡气回肠,有的人弹的就很一般。

受了李建忠老师的启发,发现用一种演化式的让人更好的接受。

好了,废话不说了。继续开发!希望大家支持!

我们之前开发了一个很简单的自定义的控件,方法很简单,只是把原来的html文本传入 writer.Writer()方法的参数,然后输出。其实从模式的角度看,这可说是个Template模式(只是提下而 已,有兴趣的朋友可以和我讨论)!

大家再来看看代码:

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace CreditCardForm
{
    public class CreditCardForm1:Control
    {
        protected override void Render(HtmlTextWriter writer)
        {
            writer.Write ("<table style='width:287px;height:128px;border-width:0'>");
            writer.Write ("<tr>");
            writer.Write ("<td>支付方式</td>");
            writer.Write ("<td>");
            writer.Write ("<select name='paymentMethod' id='paymentMethod' style='width:100%'>");
            writer.Write ("<option value='0'>Master</option>");
            writer.Write ("<option value='1'>Visa</option>");
            writer.Write ("</select>");
            writer.Write ("</td>");
            writer.Write("</tr>");
            writer.Write("<tr>");
            writer.Write("<td>信用卡号</td>");
            writer.Write("<td><input type='text' name='CreditCardNo' id='CreditCardNo'/></td>");
            writer.Write("</tr>");
            writer.Write("<tr>");
            writer.Write("<td>持卡人</td>");
            writer.Write("<td><input type='text' name='CardholderName' id='CardholderName' /></td>");
            writer.Write("</tr>");
            writer.Write("<tr>");
            writer.Write("<td>过期时间</td>");
            writer.Write("<td>");
            writer.Write("<select name='Month' id='Month'>");
            for (int month = 1; month < 13; month++)
            {
                writer.Write("<option value=" + month.ToString() + ">" + month.ToString() + "</option>");
            }
            writer.Write("</select>");
            writer.Write("&nbsp");
            writer.Write("<select name='Year' id='Year'>");
            for (int year = 2008; year< 2014; year ++)
            {
                writer.Write("<option value=" + year.ToString() + ">" + year.ToString() + "</option>");
            }
            writer.Write("</select>");
            writer.Write("</td></tr>");
            writer.Write("<tr>");
            writer.Write("<td align='center' colspan='2'>");
            writer.Write("<input type='submit' value='提交'/>");
            writer.Write("</td></tr>");
        }
    }
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索开发
, 控件
, using
, system
, write
, 第二篇
MONTH
,以便于您获取更多的相关知识。

时间: 2024-08-31 06:40:08

ASP.NET自定义控件组件开发 第一章 第二篇 接着待续的相关文章

ASP.NET自定义控件组件开发 第一章 待续

第一章:从一个简单的控件谈起 起始开发ASP.NET自定义控件不是那么的高深,当初我开始学的时候还有点恐惧,但是慢慢就好了.学 习控件的开发技术,并不一定说以后要从事控件的开发,而是让我们深入的理解掌握ASP.NET内部的机理 .你会发觉,当 学习完控件开发技术后,你以后开发网站时有种得心应手的感觉.我不希望一上来就讲 控件开始多么多么难啊,我会用一个演化的方法来讲述控件开发,一步一步帮助大家理解,如果大家要求 的话,我会考虑录制视频讲解.当然,也很希望去webcast上讲讲这个系列. 代码也会

ASP.NET自定义控件组件开发 第一章 第三篇

第三篇:第一章的完结篇 相信大家看了前几篇文章后应该觉得自定义控件很简单,无非就是把一大堆的html代码包装一下就行 了.不错,前几篇写的控件确实很简单.不知道大家想过没有,难道我们每次写控件都要大费力气的把一 大堆的html代码写进去吗. 不知道大家试了没有:如果在write.Write()方法中写的html代码有了错误,如果把<table..> 写成了<talbe..>,在编译的时候,编译器是不会发现错误,但是当我们把控件拖上来使用的时候 ,就发现控件的呈现错误.就是说,这样的

ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇

前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事 件是行不通.如果大家开发的是WinForm中的事件,之前的定义可能没有什么大的问题,只是在效率方法 欠考虑而且,还是可以运行的. 下面我们就回到ASP.NET中的事件. 大家也许看了我们之前定义的事件,确实,事件一般是那么定义的,但是那样定义事件后的,运行起 来的效率不搞,因为那样定义事件后,编译器在编译事件代码的时候,会自动的为我们加入很多多线程安 全的代码,就是说,虽然我们只是定义几行代码,大但

ASP.NET自定义控件组件开发 第二章 继承WebControl的自定义控件(二)

下面就写了RenderContent方法,不难,只记住这个方法的职责:显示最外层标记的内容: 如下: 1 protected override void RenderContents(HtmlTextWriter writer) 2 { 3 writer.RenderBeginTag(HtmlTextWriterTag.Tr); 4 writer.RenderBeginTag(HtmlTextWriterTag.Td); 5 writer.Write(PaymentMethod); 6 writ

ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl

大家好,今天我们来实现一个自定义的控件,之前我们已经知道了,要开发自定义的控件一般继承三 个基类:Control,WebControl,还有一个就是今天要说的CompositeControl. 大家也许还记得,之前的开发的控件基本上都是我们自己从头到尾的写一些控件的标记,如 <table.....>之类的,而且还有一个大的问题:我们为了使得我们的控件更加的好用,专业,我们 还实现了大量的接口,和自己写很多的事件.这样开发控件的时间就加大了.其实我们可以利用ASP.NET中 已经有的控件,经过我

ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇

好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点 :添加事件. ASP.NET的开发都是事件驱动的,现在我们就来为控件添加事件.在说事件之前,希望大家对C#的语法 要熟悉,对委托很事件要懂. 其实定义事件的步骤很简单: 1.声明一个委托. 2.定义一个携带事件信息的类. 3.定义事件4.定义一个通事件发生后,通知其他对象的方法首先来理清一下我们的思路: 1.在下拉框中选中一个值,并且在输入框中也输入相应的值. 2.我们在页面点击"提交"按钮,按钮

ASP.NET自定义控件组件开发 第六章 深入讲解控件的属性

深入讲解控件的属性持久化(一) 自从写了控件开发的文章后,收到了不少朋友的来信,提出了不少的问题,感谢大家的关注.今天就 把大家说的一些问题来讲解下. 虽然我这个系列是控件开发,但是我的目的还是希望大家通过开发控件更加快速的对ASP.NET有更加深 入的了解,所以我们也很有必要把一些基础性的东西将清楚. 为了达到深入讲解属性的目的,我首先来讲讲页面周期和页面解析的一些问题: 1.页面的解析: 大家可能听说,页面在提交给服务器的时候,都是被解析成为了一个个的继承与Page的类,最直接的 证明就是:

ASP.NET自定义控件组件开发 第五章 模板控件开发

大家好,我们今天来开发一个模板控件. 其实开发一个模板控件比开发一个组合控件更加简单,所以这章不难. 开发一个模板控件一般都继承CompositeControl,因为继承这个基类后,我们就省却了很多的麻烦. 所以本章我们开发的模板控件也继承于CompositeControl.大家应该还记得我们上章开发那个登录Login 控件吧,如下: 以上就是我们之前开发的登录控件,现在我们来改造它.我们的现在的这个登录控件的输入用户名和 密码的控件是TextBox,我们有时候可能想把TextBox 换成Dro

ASP.NET自定义控件组件开发 第四章 组合控件开发CompositeControl 后篇

事件冒泡 我们上一篇已经开发一个登录的组合控件,但是我们把控件的事件的这个问题没有解决,现在我们就 来看看这个问题. 因为我们的组合控件Login是由一些已经存在的服务器控件的组合的,这样就省却了我们很多的麻烦, 上篇中我们已经把子控件的一些属性,如Text等,显示呈现为了组合控件的属性.我们将之称为"属性的 冒泡"(我自己这样认为的). 我们现在来想下:其实我们点击"提交"按钮,我们就想把控件中信息发送给服务器,然后验证.即 ,我们点击的是"提交&quo