第一部分 入门篇 2
第1章 服务器控件开发基础 2
1.1 ASP.NET服务器控件的概念 2
1.2 ASP.NET服务器控件的类型 2
目录 2
1.2.1 HTML服务器控件 3
1.2.2 ASP.NET标准服务器控件 3
1.2.3 自定义服务器控件 4
1.3.1 高层类层次结构 5
1.3.2 HTML服务器控件类层次结构 5
1.3 服务器控件类层次结构 5
1.3.3 标准服务器控件类层次结构 6
1.4 服务器控件的生命周期 7
1.5 小结 10
第2章 呈现控件 11
2.1 使用HtmlTextWriter类 11
2.1.1 常用方法和属性 11
2.1.2 3种枚举类型 12
2.2 使用Control类的呈现方法 12
2.2.1 Control类与控件呈现 12
2.2.2 重写Render方法的实例 14
2.3.1 WebControl类与控件呈现 17
2.3 使用WebControl类的呈现方法 17
2.3.2 重写RenderContents方法的实例 19
2.4 小结 28
第3章 属性和视图状态管理 29
3.1 基础知识 29
3.1.1 属性分类和标记形式 29
3.1.2 从基类继承属性 30
3.1.3 与属性相关的设计时特性 31
3.2 声明简单属性 33
3.3.1 声明连字符形式属性 34
3.3 声明复杂属性 34
3.3.2 声明内部嵌套形式属性 36
3.3.3 声明内部嵌套形式默认属性 37
3.3.4 类型转换器及其实现方法 37
3.4 视图状态管理概述 40
3.5 自定义视图状态管理 41
3.5.1 IStateManager接口与ViewState属性的实现 42
3.5.2 Control基类的默认视图状态管理机制 44
3.6 小结 46
4.2.1 IPostBackEventHandler接口及应用要点 47
4.2 捕获回传事件 47
4.1 事件处理概述 47
第4章 事件处理 47
4.2.2 捕获回传事件的实现 50
4.3 处理回传数据 54
4.3.1 IPostBackDataHandler接口及应用要点 54
4.3.2 处理回传数据的实现 55
4.4 小结 59
第5章 样式和客户端功能 60
5.1 样式概述 60
5.1.1 操作样式的方法 60
5.1.2 样式的状态管理 61
5.2 实现样式属性的方法 62
5.2.1 重写已有样式属性 62
5.2.2 样式冒泡 63
5.2.3 自定义模板样式属性 65
5.2.4 自定义类型化样式属性 65
5.3 客户端功能 65
5.3.1 客户端功能概述 66
5.3.2 对简单客户端功能的处理 66
5.3.3 对复杂客户端功能的处理 67
5.3.4 部署客户端文件的规则 68
5.4 小结 69
6.1 复合控件概述 70
第6章 开发复合控件 70
6.2 复合控件的呈现 71
6.3 复合控件的事件处理 74
6.3.1 包含法 74
6.3.2 冒泡法 78
6.4 复合控件的样式 81
6.5 小结 87
第7章 开发验证控件 88
7.1 内置验证控件概述 88
7.2.1 服务器端验证 89
7.2 验证框架 89
7.2.2 客户端验证 91
7.3 验证控件实现步骤 104
7.4 实现一个简单的验证控件 104
7.4.1 实现分析 105
7.4.2 控件应用 108
7.5 小结 111
第8章 开发模板控件 112
8.1 模板控件概述 112
8.2 ITemplate和模板控件解析过程 112
8.3 实现静态模板控件 114
8.4 实现动态模板控件 120
8.5 小结 128
第9章 开发数据绑定控件 129
9.1 数据绑定控件概述 129
9.2 实现关键属性和方法 129
9.3 实现基本数据绑定控件 132
9.4 实现模板化数据绑定控件 142
9.5 小结 154
10.2 服务器控件开发原则 155
10.1 开发模式概述 155
第10章 服务器控件开发模式 155
10.3 服务器控件开发流程 156
10.4 服务器控件开发技术的学习过程 157
10.5 小结 158
第二部分 实例篇 160
第11章 实例1——XP风格导航栏控件 160
11.1 控件简介 160
11.2 实现要点 160
11.3 典型应用 167
11.4 小结 170
12.1 控件简介 171
第12章 实例2——确认按钮系列控件 171
12.2 实现要点 172
12.2.1 服务器端代码实现 172
12.2.2 客户端脚本代码实现 175
12.2.3 页面执行过程及其他 176
12.3 典型应用 177
12.4 小结 181
第13章 实例3——可伸缩面板控件 182
13.1 控件简介 182
13.2 实现要点 182
13.2.1 服务器端代码实现 183
13.2.2 客户端行为分析 191
13.3 典型应用 194
13.4 小结 195
第14章 实例4——带目录浏览功能的上传控件 196
14.1 控件简介 196
14.2 实现要点 197
14.3 典型应用 215
14.4 小结 215
第15章 实例5——高级日历控件 217
15.1 控件简介 217
15.2 实现要点 218
15.2.1 控件呈现 219
15.2.2 属性设置 228
15.2.3 事件处理 233
15.2.4 复杂样式属性和状态管理 235
15.3 典型应用 242
15.4 小结 244
第16章 实例6——调色板控件 245
16.1 控件简介 245
16.2 实现要点 247
16.3 典型应用 256
16.4 小结 258
17.2 实现要点 259
第17章 实例7——高级列表选择控件 259
17.1 控件简介 259
17.2.1 实现前分析 260
17.2.2 改进ListBox控件 261
17.2.3 实现复合 271
17.3 典型应用 290
17.4 小结 292
第18章 实例8——XP风格ListBox控件 293
18.1 控件简介 293
18.2 实现要点 294
18.3 典型应用 314
18.4 小结 317
第19章 实例9——可扩展按钮系列控件 318
19.1 控件简介 318
19.2 实现要点 319
19.3 典型应用 334
19.4 小结 337
第20章 实例10——HTML在线编辑器控件 338
20.1 控件简介 338
20.2 实现要点 341
20.2.1 控件生成过程中的事件处理 345
20.2.2 控件自身事件及回传数据和事件处理 347
20.2.3 实现ToolbarItem 349
20.2.4 实现ToolbarButton 351
20.2.5 实现ToolbarItems 352
20.3 典型应用 355
20.4 小结 359
附录A 代码模板 360
A.1 复合控件代码模板 360
A.2 验证控件代码模板 362
A.3 模板控件代码模板 364
A.4 数据绑定控件代码模板 366