摘要: Asp.net请求处理构架当一个客户端浏览器对IIS发起访问请求资源时(比如一个.aspx文件),Asp.net会初始化并维护一个包含了多个Response和Request的Http Session 的客户端的连接。一次典型的访问如下图: 上图中,首先,一个请求发到IIS服务器,IIS会检查请求的扩展名,如果是aspx或者ascx文件,IIS会自动匹配到aspnet_isapi.dll来处理这个请求,如果是其他扩展名的文件,IIS会自动匹配到对应ISAPI文件来处理请求。请求的过程会执行HttpRuntime对象,而HttpRuntiem会利用HttpApplicationFactory对象来 阅读全文
posted @ 2010-12-07 16:35 庙子 阅读(201) 评论(0) 推荐(0) 编辑
摘要: Asp.net提供了很多种与客户端状态交互的方式,控件开发人员可以给控件添加额外的值(比如控件的ViewState)来使控件貌似能记住前一个值.Asp.net提供了四种客户端状态管理的方式。他们是:lViewStatelURL stringslHidden Html VariableslCookiesURL String 利用URL传值请求服务器是简单并且应用最广泛的。比如在电子商务中,一个像这样的地址:http://xxx.com/product.aspx?categoryid=1&productid=1 表示传入两个键值对。 在服务器接收对应值时可以用Request对象的QueryStri 阅读全文
posted @ 2010-12-07 16:25 庙子 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 在Asp.net中,利用Http Post的回传机制意味着可以再客户端存储状态并且可以在服务器接收.Asp.net中大部分控件都提供了存储自身状态的功能并且在自身状态改变时引发对应事件。IPostDataHandler接口提供了在服务器处理客户端通过Http Post回传数据的方法。IPostDataHandler通过实现IPostDataHandler接口,服务器可以在不使用Page和Request对象的情况下来读取客户端回传数据。IPostDataHandler还提供了在用户状态改变的情况下来引发相应事件的框架。IPostDataHandler的定义如下: public interface 阅读全文
posted @ 2010-12-07 16:14 庙子 阅读(130) 评论(0) 推荐(0) 编辑
摘要: WebControl基类 在Asp.net控件开发中,WebControl基类给我们提供了对于控件的Style更加灵活的解决方案,因为在System.Web.UI.Control基类中只能手动的输入呈现在客户端的代码,但如果开发的服务器控件对style的要求较高。那Control基类的局限性就显而易见了,而继承WebControl类作为基类将会是很好的选择。 System.web.UI.WebControls.Webcontrol直接继承与Control类。在继承了Control的特性的基础上,WebControl基类不仅在生成客户端html使用了另一种更好的render方式,并且还提供了对于 阅读全文
posted @ 2010-12-07 15:54 庙子 阅读(233) 评论(0) 推荐(0) 编辑
摘要: EventCollection如果在单个控件中有多个事件,那么使用System.ComponentModel.EventHandlerList对事件进行保存将会在内存占用上有不错的提高。EventHandlerList对一个类内发布多个事件提供了一个列表容器。下面是多个事件和使用EventHandlerList的对比示意:第一步是实例化一个EventHandlerList的实例:protected EventHandlerList eventList = new EventHandlerList();第二步是声明一个容器用于保存事件的keyprivate static readonly obj 阅读全文
posted @ 2010-12-07 15:33 庙子 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 事件和委托之间的暧昧关系往往是大多Web Developer在学习.net中的一个里程碑,当明白事件和委托的关系后,.net水平往往就上了一个新的台阶.下面说到服务器控件的事件模型. 在任何一个服务器编程开发框架中,事件都是解耦功能和具体实现的一剂良方,Asp.net当然也不例外。比如说吧,页面上的button的click事件表示它的功能,而具体的实现将会被分离交给Developer来进行具体实现。 传统的编程模型和基于事件的编程模型可以用下图进行简约概括:我们可以看出事件极大的简化了编程工作,客户端程序只需要注册到事件并且和事件的签名保持一致(即参数个数和类型相同)即可。在事件发生后,客户端 阅读全文
posted @ 2010-12-07 15:19 庙子 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 简介我在Web项目的开发过程中很多时候都要用到ComboBox,找了很多类似的控件来用发现都不尽如人意,我所希望的能够在WEB上使用的ComboBox应该就是在DropDownList的功能上加入了文本输入功能,我个人比较看重的一点就是下拉列表应该可以伸展到浏览器之外,然而目前大多数的ComboBox要么是用DIV来显示选择项,要么就是用TextBox+ListBox,DIV的方式会不能伸展到浏览器之外,而TextBox+ListBox方式ListBox占用页面空间。后来发现了A DHTML combo box , 于是决定基于此HTC开发一个ASP.NET服务器控件.关键类设计ComboBo 阅读全文
posted @ 2010-12-06 16:28 庙子 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 每次将网页发送到服务器时,都会创建网页类的一个新实例。在传统的 Web 编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失。例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失。 为了解决传统的 Web 编程的固有限制,ASP.NET 包括了几个选项,可帮助您按页保留数据和在整个应用程序范围内保留数据。这些功能如下所示:视图状态控件状态隐藏域Cookie查询字符串应用程序状态会话状态配置文件属性 视图状态、控件状态、隐藏域、Cookie 和查询字符串均会涉及以不同方式将数据存储到客户端上。而应用程序状态、会话状态和配置文件属 阅读全文
posted @ 2010-12-06 10:16 庙子 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Web 应用程序是无状态的。每次从服务器请求网页时,都会创建网页类的一个新实例。这通常意味着在每次往返过程中将会丢失所有与该页面及其控件关联的信息。例如,如果用户将信息输入到 HTML 网页上的文本框中,此信息将发送到服务器,但是不会返回到客户端。为了克服 Web 编程的这一固有局限性,ASP.NET 页框架包含几种状态管理功能,可以将往返过程之间的页和控件值保存到 Web 服务器,其中一种功能便是视图状态。有关状态管理的更多信息,请参见 ASP.NET 状态管理概述。视图状态是 ASP.NET 页框架默认情况下用于保存往返过程之间的页和控件值的方法。当呈现页的 HTML 形式时,需要在回发过 阅读全文
posted @ 2010-12-06 09:57 庙子 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 上一篇写了控件样式的一些基础的东西,接着我们继续讨论asp.net控件开发的一些东西.这次我们要讨论的是复合控件.本文无法一步到位完整介绍,因为讨论的篇幅比较大,所以分两次写,这次就先讲些基本概念吧,剩着的下次写.好象复合控件网上已经有很多教程了,相信大家也看过很多.如果看过的朋友就当我再废话一便,没看过的朋友希望能给你带来帮助.1.复合控件概念复合控件跟用户控件有很多相似点,最大不同就是用户控件... 阅读全文
posted @ 2010-12-01 17:12 庙子 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 上一篇讲了关于属性方面的一些东西 ,这次讲的是关于样式.位于WebControls命名空间的style类为顶级样式类.大部分标准控件都拥有其样式属性.1.下面为设置样式方法(1)你可以直接设置控件样式Button1.BackColor=System.Drawing.Color.Red;(2)通过获取web控件的样式集合来设置Button1.ControlStyle.BackColor=System... 阅读全文
posted @ 2010-12-01 16:29 庙子 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 上一篇简单的讲了从WebControl继承的控件(好象我讲的都是简单的,嘿嘿).本次讲的更简单,主题是是属性,只当分享经验,希望对大家有帮助我们根据属性的不同表现形式,把其区分为简单属性和复杂属性下面来看下属性的表现形式简单属性表现形式如下,大家都很熟悉<asp:TextBoxID="TextBox1"Text="textbox控件"runat="server"></asp:Te... 阅读全文
posted @ 2010-12-01 15:48 庙子 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 下载本文源代码  在上一篇文章中,我们讨论了有关视图状态的内容。部分读者已经发现,如果页面或者控件禁用了视图状态,那么开发人员将无法保证利用ViewState存储的状态信息得以正常应用。这对于ViewState而言,的确是一个缺陷。为了解决这个问题,ASP.NET 2.0新增了一个技术特性--控件状态。本文首先对控件状态的基本概念进行介绍,然后通过一个典型示例,说明控件状态应用方法。需要提醒读者的... 阅读全文
posted @ 2010-12-01 10:43 庙子 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 为Web页面及其控件保持状态信息是非常有必要的。然而,由于Web应用程序创建于HTTP协议的顶层,这是一个无状态的协议,因此,保持状态信息则变得非常困难。为了解决这个问题,ASP.net 2.0技术提供了多种解决方案,例如,利用Session、Cookie、视图状态、控件状态、隐藏域、查询字符串、个性化用户配置(Profile)等等。对于利用ASP.NET 2.0技术创建服务器控件而言,保持状态信息也是非常重要的,其主要解决途径是利用视图状态和控件状态。本文详细讲解了视图状态(ViewState)的基本知识,并通过典型应用介绍视图状态的应用方法。 阅读全文
posted @ 2010-12-01 10:02 庙子 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 前言我所说的“大全”,是吹的,需要大家的热心的指教与补充。首先我的文章不会介绍什么是ViewState以及怎么使用它。如果对ViewState还不太明白的朋友,请参考MSDN上的这篇文章,虽然它是很久以前写的,但对于理解ViewState还是非常不错的。只要对ViewState稍有了解,就会知道,Asp.net页面中ViewState一般是存储在页面的一个隐藏域中:<... 阅读全文
posted @ 2010-11-30 23:10 庙子 阅读(190) 评论(0) 推荐(0) 编辑
摘要: asp.net本身提供了很多控件,提供给我们这些比较懒惰的人使用,我认为控件的作用就在此,因为我们不想重复工作,所以要创建它,这个本身便是一个需求的关系,所以学习控件开发很有意思.wrox网站上有本书 Professional ASP.NET 2.0 Server Control and Component Development现在还没有出版,但网站上放出了代码,所以正好下载过来学习一下.我看过... 阅读全文
posted @ 2010-11-30 16:12 庙子 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 或许大家还对为何要重写Render方法存有疑惑,希望大家看看我举的例子,能够明白Render方法和其他两个方法的作用,然后真正明白为何一般情况下只须重写Render方法我们知道我们每次编写控件时,都需要重写Render方法,我们发现在Control类中很多方法可以重写,但我们没有去重写他们,我们需要遵循一个原则,在需要重载的时候再去重写他们我们还是先来看看与Render方法相关的两个方法//Ren... 阅读全文
posted @ 2010-11-30 15:39 庙子 阅读(108) 评论(0) 推荐(0) 编辑
摘要: 上一篇:http://www.cnblogs.com/Clingingboy/archive/2006/08/01/465397.html上次讲了在继承Control类的时候为什么需要重写Render方法本次来介绍控件的事件处理. 我们知道Button控件有OnClick事件,DropDownList控件有SelectedIndexChanged事件.一.回发事件和客户端回发下面来看一个最简单的例... 阅读全文
posted @ 2010-11-30 11:27 庙子 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 上一篇写了有关回传的一些东西,这次我本来不知道该写什么的,因为各方面的关联太多了,最后我还是想,还是慢慢一点点的写吧.这次讲WebControl一.从继承WebControl开始在第二篇教程中,重点介绍了Render()方法的使用,用来呈现控件,但从Control类继承的控件尚未发挥asp.net控件的作用.大家知道web服务器控件分为HTML服务器控件(如<input id="Button... 阅读全文
posted @ 2010-11-30 11:16 庙子 阅读(115) 评论(0) 推荐(0) 编辑
摘要: 随着.NET技术的不断发展和成熟,服务器控件越来越受到广大开发人员的喜爱。同时,服务器控件的发展也呈现出一些趋势,例如,功能越来越强大,很多功能逐渐从服务器端转移到客户端。另外,服务器控件也越来越美观。这可能与Windows操作系统越来越讲求功能与外观统一的发展思路有关。本文及其随后的几篇文章将重点介绍如何为服务器控件实现漂亮的外观。实际上,服务器控件的外观主要由样式属性决定。本文重点对实现控件样... 阅读全文
posted @ 2010-11-29 16:46 庙子 阅读(271) 评论(0) 推荐(0) 编辑