摘要: 在前面的讲解中,控件的属性的类型都是基本类型、字符串等简单类型,这些类型我们不用做任何的额外工作,就可以把控件的属性持久化到控件的标签中(保存在aspx[Source]里),但是我们开发的控件的属性不可能全部是这样的简单类型,比如有时也会遇到属性为Size这样的复杂属性,为了使这样的属性持久化,我们还必须做其它的工作,就这是我们这章主要内容。 对复杂属性进行持久化,我们有两种方式(可以单独使用,也可以相互配合): 1、使用TypeConvert把复杂属性转化为简单类型string,以能持久化到控件的标签中。 2、串行化复杂属性的元数据。 上述的两种方式,并不是Asp.net控件所特有的,而是. 阅读全文
posted @ 2006-07-06 23:47 mapserver 阅读(3856) 评论(6) 推荐(0) 编辑
摘要: 当用户向请求一个页面时,服务器端会向客户端发送一段文本,包括可显示标记字符和不可显示的文本,当这段文本到达客户端后,再通过客户端的浏览器(如IE)把可视化的标记字符转化为可视呈现给用户,所以在用户请求一个aspx页面时,页面上的Asp.net服务器控件,也会把文本写入到返回的文本流中,在本章中我们将讲述这一过程。 在Asp.net服务器控件提供了4个有关呈现的方法,分别是Render、RenderChildren、RenderContents和RenderControl,这4个方法都有一个HtmlTextWriter类型的参数。HtmlTextWriter的作用就是把标记字符和文本写入倒As. 阅读全文
posted @ 2006-07-03 00:14 mapserver 阅读(4092) 评论(15) 推荐(0) 编辑
摘要: 大家都知道Web应用程序的无状态,一个客户端的请求,在其请求完成后,服务器端都会删除这个请求的相关信息。有时我们需要Web请求完成后,还要继续保持信息,在传统的Web编程中最常用的有两种方式:Session、Cookies,但是这两种传统的方式,都有其弊端,Session会增加服务器的负担,Cookies则会依赖客户端,要求客户端必须支持Cookies,同时Cookies是存在客户端的计算机上,所以可能有安全问题。 在Asp.net里ms提出了一种新的状态保持,这就是ViewState,当然原来的Session和Cookies在Asp.net可以继续使用,那我们用一个Web的请求来说明一下V. 阅读全文
posted @ 2006-06-08 00:33 mapserver 阅读(4705) 评论(18) 推荐(0) 编辑
摘要: [以下的Control、WebControl分别位于System.Web.UI和System.Web.WebControls名称空间下]创建Asp.net里的服务器控件和Windows Form的控件一样,也有几种方式: 1、用户控件(user control) 2、从Control、WebControl派生的自定义控件 3、从已有的Asp.net服务器控件扩展 用户控件以.ascx为扩展名,并保存为文本文件,用户控件不像从Control和WebControl派生下来的服务器控件那样需要预编译,当用户控件在.aspx页面中使用的时候,页面解析器从.aspx文件中动态地生成一个类,并且将其编译. 阅读全文
posted @ 2006-05-06 00:43 mapserver 阅读(3014) 评论(10) 推荐(0) 编辑
摘要: 在园子里也大概搜了下,thinhunan写过一个系列《今天你写控件了吗》,写的也很不错。但是我还是下定决心写这个系列的文章,以完成Component和Control的一个完整的系列。 有朋友给我说:Asp.net之所以方便和强大,关键是它有一组强大的Asp.net服务器控件,在Asp.net中我们经常会遇到Html标注,Html服务器控件、Web控件和Asp.net服务器控件等等,你能区分出它们之间的关系吗?那我们首先来区分下Asp.net开发中经常用到的几个概念,Html标注、Html服务器控件、Web控件和Asp.net服务器控件, Html标注:就是我们传统所说的Html 超文本标记语. 阅读全文
posted @ 2006-04-26 23:14 mapserver 阅读(4100) 评论(15) 推荐(0) 编辑
摘要: Asp.net服务器控件编程(1) 开篇、基础 Asp.net服务器控件编程(2) 来做个热身运动吧 Asp.net服务器控件编程(3) ViewState(一)——asp.net控件的精华之一 Asp.net服务器控件编程(4) 呈现 Asp.net服务器控件编程(5) 复杂属性 Asp.net服务器控件编程(6) ViewState(二)——ViewState用法和IStateManager 阅读全文
posted @ 2006-04-26 23:08 mapserver 阅读(1715) 评论(0) 推荐(0) 编辑
摘要: 上章我们演示了如何从一个文本中把数据读出来,并显示出来,这章我们将来看看如何把更改的数据保存到文本中。 在DataSourceView里CanUdpate、CanDelete和CanInsert三个返回值为bool的属性,他们分别表示DataSourceView所对应的DataSource是否允许被修改、删除和插入行,要想DataSourceControl的数据可以进行修改,我们必须override其 DataSourceView的ExecuteUpdate方法,对DataSourceControl的数据进行更改的时候,就会自动执行此方法,同理,要对数据进行删除和插入的话,就必须overri. 阅读全文
posted @ 2006-04-23 22:19 mapserver 阅读(1416) 评论(5) 推荐(0) 编辑
摘要: 本篇文章参考了msdn的DataSourceControl相关帮助。 上一章我们一起讨论了,DataSourceControl、IDataSource的基础,那我们今天来看如何把一个文本文件里的数据显示出来,数据的Insert、Update、Delete我们将在下章中进行讲解。 所有继承于DataBoundControl 类绑定到数据显示控件(如DataGrid)时,它会根据数据显示控件的DataSource和DataMember为我们生成一个数据的View(也就是去执行DataSourceControl.GetView()方法),生成这个View就是我们显示数据的核心,它有点类似于DataV 阅读全文
posted @ 2006-04-20 01:04 mapserver 阅读(2119) 评论(4) 推荐(0) 编辑
摘要: .NET 2.0中Web Site开发的数据操作和1.1下的有很大的差别,虽然像DataSet、SqlConnection、SqlCommand等组件还是能继续使用,但其使用方式有了很大变化:在.NET 2.0里HtmlForm和Page之间的界限更明确,两者之间的唯一联系就是HtmlForm里的Page指令中的CodeFile、Inherits,这样做的好处我想不外乎是让服务端代码和客户端代码分离更彻底,代码更清晰;.NET 2.0里所有的组件都放置在Component Designer中,而不像1.1下组件放置在HtmlForm Container上,这样做的直接影响就是HtmlForm. 阅读全文
posted @ 2006-04-17 23:50 mapserver 阅读(2587) 评论(4) 推荐(0) 编辑
摘要: 本来不打算写ISupportInitialize的,但是自己总觉得系列不完整,所有还是写下了这篇ISupportInitialize的文章。其实ISupportInitialize这个接口在Component里也是很有用的,那到底ISupportInitialize是干什么用的呢? msdn上的解释为:指定该对象支持对批初始化的简单的事务处理通知。ISupportInitialize 允许控件为多组属性而优化。因此,可以在设计时初始化相互依赖的属性或批设置多个属性。 ISupportInitialize下有两个方法:BeginInit和EndInit,调用 BeginInit 方法用信号通知. 阅读全文
posted @ 2006-04-12 12:14 mapserver 阅读(4745) 评论(9) 推荐(0) 编辑