第Ⅰ部分 控件简介 3
第1章 创建自己的控件 3
1.1 三种控件 3
1.1.1 用户控件 3
1.1.2 自定义控件 4
1.1.3 Web Part 5
1.2 可重用控件的优点 5
1.2.1 Web Part除可重用性之外的优势 6
1.2.2 用Web Part进行定制 7
1.3 用控件实现可重用性 8
1.4 控件 9
1.5 不同类型的控件 12
1.5.1 使用用户控件的场合 13
1.5.2 使用自定义控件的场合 13
1.6 Web Part:定制 14
1.7 提供个性化 16
1.8 个性化框架 16
1.9 小结 18
第2章 创建定制页面 19
2.1 Web Part框架控件 19
2.2 创建定制页面 20
2.3 给区域添加控件 23
2.3.1 在Web Part中封装控件 24
2.3.2 访问区域中的控件 24
2.4 配置区域 27
2.4.1 配置定制动词 27
2.4.2 配置Verb菜单 28
2.4.3 给区域设置样式 29
2.5 打开定制功能 30
2.6.1 用EditorZone控件编辑控件 33
2.6 定制工具控件 33
2.6.2 用CatalogZone控件添加新控件 36
2.6.3 配置工具区域 41
2.7 小结 42
第Ⅱ部分 创建控件 45
第3章 创建自定义控件 45
3.1 创建Visual Studio解决方案 46
3.1.1 开始一个自定义控件项目 46
3.1.2 配置解决方案 47
3.1.3 保持同步 49
3.1.4 组织自定义控件 50
3.1.5 组织案例分析 51
3.2 扩展已有的控件 55
3.3 创建完整的自定义控件 56
3.3.1 添加组成控件 57
3.3.2 编写HTML 65
3.3.3 合并控件和HTML 73
3.3.4 分解Render方法 75
3.3.5 支持AutoPostBack 76
3.4 处理返回的数据 80
3.5 控制相关的HTML 83
3.5.1 设计期间的HTML 83
3.5.2 运行期间的HTML 85
3.6 提取和控制WebControl属性 89
3.6.1 服务器端属性 89
3.6.2 确定标记 89
3.7 管理自定义控件的样式 90
3.7.1 主题和skin 91
3.7.2 使用层叠样式表类 91
3.7.3 更新样式 92
3.8 处理设计模式 99
3.8.1 管理设计期间的代码 99
3.8.2 控制Visual Studio处理控件的方式 101
3.9 小结 102
第4章 建立用户控件 103
4.1 用户控件、WebForm和自定义控件 103
4.2 启用用户控件 104
4.3 给控件编写代码 107
4.3.1 模拟构造函数 108
4.3.2 动态接口 109
4.3.3 使用WebPart 110
4.4 使用用户控件 111
4.5 访问控件 113
4.7 小结 114
4.6 用户控件HTML 114
第5章 建立Web Part 117
5.1 激活定制属性的个性化功能 117
5.1.1 打开定制功能 118
5.1.2 保存定制的内容 119
5.1.3 共享定制的内容 119
5.1.4 激活继承的属性的定制功能 120
5.1.5 给属性添加说明 121
5.2 创建功能全面的Web Part 121
5.3 检查可个性化的数据 122
5.4 访问特性 122
5.5 添加新的动词 124
5.5.1 创建动词列表 124
5.5.2 共享例程 127
5.5.3 创建动词例程 128
5.5.4 配置动词 129
5.6 Web Part的HTML 130
5.6.1 顶层:WebPartZone 131
5.6.2 中间层:Web Part 132
5.6.3 底层:标题栏 132
5.6.4 底层2:Web Part 134
5.6.5 组成控件的name和id特性 134
5.7 配置Web Part 135
5.7.1 控制Web Part的用户界面 135
5.7.2 查找Web Part 138
5.7.3 关闭个性化功能 139
5.7.4 提供帮助 140
5.8 小结 141
第6章 用ViewState保存状态 143
6.1 使用ViewState 143
6.1.1 直接访问ViewState 144
6.1.2 高效地管理ViewState 145
6.2 管理控件的状态 148
6.2.1 清理状态 152
6.2.2 创建区分大小写的键 153
6.3 与高速缓存集成 154
6.4 对象的高效串行化 157
6.4.1 使用TypeConverter 160
6.4.2 把TypeConverter关联到类上 161
6.5 小结 162
第7章 开发工具 163
7.1 在设计期间调试控件 163
7.2 部署控件 165
7.2.1 已部署的Web站点格式 165
7.2.2 更新用户控件 168
7.2.3 更新自定义控件和Web Part 169
7.2.4 共享自定义控件和Web Part 170
7.2.5 强名 173
7.3 给控件设置许可 176
7.4 管理个性化子系统 180
7.4.1 识别用户 180
7.4.2 建立个性化提供程序 183
7.5 小结 184
第Ⅲ部分 扩展控件 187
第8章 添加业务功能 187
8.1 分解代码 187
8.1.1 方法和事件 188
8.1.2 方法和属性 190
8.1.3 事件的作用 190
8.1.4 在Web环境下使用事件 192
8.2 自定义控件的生存期 192
8.2.3 组成控件的事件 193
8.2.1 自定义控件的事件 193
8.2.2 主页的事件 193
8.2.4 处理事件 195
8.2.5 在设计期间运行事件 197
8.3 给组成控件添加代码 197
8.3.1 创建例程 197
8.3.2 编写控件的例程 198
8.4 创建定制方法、属性和事件 199
8.4.1 访问级别 199
8.4.2 定制属性 200
8.4.3 保存设计期间进行的修改 204
8.4.4 配置属性 205
8.4.5 共享/静态方法和属性 206
8.4.6 给Visual Studio 2005配置方法和属性 207
8.4.7 添加定制事件 208
8.4.8 为Visual Studio配置事件 218
8.4.9 管理多个控件中的事件 219
8.5 管理控件集合 221
8.6 小结 222
第9章 添加高级功能 225
9.1 集成客户端代码 225
9.1.1 ASP.NET客户端代码 225
9.1.2 静态和动态的客户端代码 226
9.1.3 引发客户端代码 227
9.1.4 动态生成代码 230
9.1.5 支持客户端脚本 233
9.1.6 建立回调函数 237
9.2 专用控件 247
9.2.1 验证控件 248
9.2.2 模板控件 255
9.3 多个记录的数据绑定 260
9.3.1 数据绑定属性 261
9.3.2 提取数据 263
9.3.3 显示数据 266
9.3.4 进行更新 267
9.4 设计期间的支持 269
9.4.1 处理复杂的属性 269
9.4.2 设计器 288
9.5 小结 295
第10章 Web Part之间的通信 297
10.1 使用可连接的Web Part 297
10.1.1 建立页面 297
10.1.2 建立连接 298
10.2.1 创建Web Part提供程序 301
10.2 创建可连接的Web Part 301
10.1.3 管理连接 301
10.2.2 创建Web Part使用程序 304
10.2.3 双向连接 306
10.2.4 预定义的接口 308
10.2.5 处理不兼容的接口 317
10.2.6 连接点参数 319
10.3 建立自己的连接 320
10.3.1 连接的类型 321
10.3.2 通过代码建立连接 321
10.3.3 创建静态连接 325
10.3.4 永久管理和静态连接 326
10.3.5 连接事件 328
10.4 配置ConnectionsZone文本 328
10.5 小结 329
11.1.1 控制WebPartManager个性化选项 331
第11章 使用Web Part体系结构 331
11.1 在WebPartManager上设置个性化选项 331
11.1.2 把变化应用于其他用户 332
11.1.3 进行授权 333
11.2 管理Web Part的个性化 335
11.2.1 检查是否支持DisplayMode 336
11.2.2 管理个性化的改变 337
11.3 在代码中处理Web Part 347
11.3.1 关闭Web Part 348
11.3.2 移动Web Part 348
11.3.3 添加一个关闭的Web Part 349
11.3.4 从类别中添加Web Part 349
11.3.5 创建Web Part 351
11.3.6 导出导入Web Part 353
11.4 小结 359
第Ⅳ部分 控件的应用 363
第12章 自定义控件的案例分析 363
12.1 设计控件 364
12.2 建立解决方案 364
12.3 添加控件 366
12.4 设置默认样式 371
12.5 控件的定位 372
12.5.1 重写Render方法 373
12.5.2 使用表格 374
12.5.3 使用绝对定位功能 377
12.6 在显示模式和更新模式之间切换 380
12.7 给开发人员调整控件 384
12.8 保存状态 386
12.8.1 为保存状态定义一个数据结构 386
12.8.2 保存到ControlState中 387
12.9 提取用户数据 389
12.10 引发事件 393
12.10.1 定义定制事件参数对象 394
12.10.2 定义事件 396
12.10.3 引发事件 396
12.10.4 支持下一个控件开发人员 397
12.11 在回送时显示用户数据 399
12.12 显示和接受数据 401
12.13 支持定制 403
12.14 添加动词 405
12.15 通信 407
12.15.1 定义接口 407
12.15.2 实现提供程序 408
12.15.3 实现使用程序 409
12.16 小结 410