第Ⅰ部分 数据访问和报表 3
第1章 数据绑定.NET控件 3
1.1 ASP.NET数据绑定 3
1.1.1 可用的数据绑定源 4
1.1.2 简单的数据绑定 4
1.1.3 复杂的数据绑定 5
1.2 DropDownList Web控件 6
1.3 CheckBoxList Web控件 8
1.4 RadioButtonList Web控件 10
1.5 ListBox Web控件 10
1.6 Repeater控件 11
1.6.1 访问数据绑定信息 12
1.6.2 Repeater控件事件 13
1.7 DataList控件 16
1.7.1 DataList专用模板 17
1.7.2 DataList特有的事件 17
1.7.3 特殊的命令名 19
1.7.4 相关图形和数据元素 19
1.8 DataGrid控件 22
1.9 本章小结 24
第2章 可分页的数据网格 25
2.1 构成DataGrid的项 25
2.2 列类型 26
2.3 绑定列 27
2.3.1 绑定的列 28
2.3.2 按钮列 29
2.3.3 链接列 31
2.3.4 以编程方式绑定 34
2.3.5 动态列绑定 35
2.4 数据分页 36
2.4.1 半自动分页 37
2.4.2 分页的属性 38
2.4.3 页导航栏 38
2.4.4 实际分页 39
2.4.5 自定义页导航栏 41
2.4.6 自定义分页 45
2.5 排序列 50
2.5.1 设置排序 50
2.5.2 自动反向排序 51
2.5.3 对多个字段排序 54
2.5.4 多列的自动反向排序 54
2.5.5 显示排序信息 56
2.6 DataGrid控件和数据持久性 57
2.6.1 可伸缩性概述 58
2.6.2 使用Session对象 58
2.6.3 使用Cache对象 59
2.6.4 使用XML文件 60
2.6.5 使用数据阅读器和适配器 61
2.6.6 分页的矛盾 61
2.7 本章小结 62
第3章 模板化的DataGrid控件 63
3.1 绑定模板列 63
3.2 模板列实例 65
3.2.1 串接数据字段 66
3.2.2 对模板列排序 67
3.2.3 将列组织到一个标题下 68
3.2.4 调整列边距 70
3.2.5 自定义列标题 72
3.3 动态创建模板 74
3.3.1 从文件中加载模板 74
3.3.2 管理列的多视图 75
3.3.3 从字符串加载模板 78
3.3.4 实现ITemplate 79
3.4 使列与数据适配 81
3.4.1 显示布尔值 82
3.4.2 显示图像 83
3.4.3 显示数组 84
3.5 本章小结 87
第4章 编辑DataGrid控件 88
4.1 就地编辑 88
4.1.1 启用就地编辑 89
4.1.2 从编辑字段中读取文本 93
4.1.3 更新数据源 94
4.1.4 诸多缺点 97
4.2 用模板进行就地编辑 98
4.2.1 使用模板控件 99
4.2.2 使布局与数据相适应 101
4.3.1 设置添加行特性 106
4.3 添加新行 106
4.3.2 添加空行 107
4.3.3 转换为编辑模式 109
4.3.4 更新表和网格 110
4.4 本章小结 113
第Ⅱ部分 智能和高效的数据访问和报表 117
第5章 ASP.NET中的代码重用性 117
5.1 ASP.NET页的层 117
5.1.1 从Spaghetti代码到Lasagna代码 118
5.1.2 简化的页 118
5.2 代码隐藏方法 118
5.2.1 启用代码隐藏 119
5.2.2 编写代码隐藏页 119
5.2.3 ASP.NET页的可视化继承 121
5.3 可嵌入的Web窗体 123
5.3.1 编写用户控件 124
5.3.2 创建新的DateBox控件 128
5.3.3 触发事件 131
5.4 编写自定义控件 135
5.4.1 带标签的TextBox控件 135
5.4.2 使用自定义控件 137
5.4.3 一个现成的DataGrid 控件 138
5.4.4 UpdateView事件 141
5.4.5 SortExpression属性 142
5.5 本章小结 142
第6章 高级数据报表 144
6.1 项选择 144
6.1.1 启用项选择 145
6.1.2 使用SeIectedlndex Changed事件 147
6.1.3 以编程方式选择行 148
6.1.4 选择并挖掘 150
6.1.5 筛选视图 151
6.2 允许多项选择 152
6.2.1 SuperGrid控件的属性 153
6.2.2 SuperGrid控件的布局 154
6.2.3 检索选定项 158
6.3 按条件选择 160
6.3.1 改变背景色 161
6.3.2 判断条件 161
6.3.3 添加额外列 162
6.4 合计和摘要行 164
6.4.2 建立表之间的关系 165
6.4.1 查询的正确方法 165
6.5 本章小结 171
第7章 断开式web应用程序 172
7.1 DataSet对象的用途 172
7.1.1 对Web应用程序的意义 173
7.1.2 DataSet和DataGrid控件 173
7.1.3 断开式应用程序 174
7.2 透明数据源 175
7.2.1 使用Cache对象 175
7.2.2 从一般数据源加载数据 176
7.2.3 创建子表 177
7.3 批量更新 178
7.3.2 应用内存中的更改 179
7.3.1 锁定行 179
7.3.3 自动增量字段 181
7.3.4 删除和移除 183
7.3.5 行状态 184
7.4 数据的脱机缓存 184
7.4.1 从XML加载DataSet 185
7.4.2 DiffGram格式 185
7.5 提交更改 188
7.5.1 检测更改 188
7.5.2 拒绝更改 189
7.5.3 查看更改 189
7.5.4 生成命令 192
7.5.5 命令生成器 195
7.5.6 数据冲突 197
7.6 本章小结 201
第Ⅲ部分 可互操作性 205
第8章 可互操作的Web应用程序 205
8.1 COM Interop服务 205
8.2 在.NET应用程序中使用ADO 206
8.2.1 ADODB程序集 207
8.2.2 得到Recordset 207
8.2.3 ADO服务器游标 209
8.2.4 移植问题 210
8.3 将Recordset对象改造成DataSet 对象 210
8.3.1 在DataSet对象中加载Recordset对象 211
8.3.3 常用移植方案 212
8.3.2 在DataTable对象中加载Recordset对象 212
8.4.1 将DataSet对象序列化为XML Recordset对象 216
8.4.2 DataSet对象的XML架构 216
8.4 从DataSet对象到ADO Recordset对象 216
8.4.3 ADO XML架构 217
8.4.4 创建ADO XML架构 219
8.4.5 从.NET数据到XML 222
8.5 XML对象序列化 223
8.5.1 启用对象序列化 223
8.5.2 XML序列化 226
8.6 本章小结 227
第9章 Web服务 228
9.1 动态链接Web库 228
9.1.2 底层技术 229
9.1.1 Web服务规范 229
9.2 .NET Web服务 230
9.2.1 WebService属性 230
9.2.2 改变默认的命名空间 231
9.2.3 定义Web方法 232
9.2.4 .NET Web服务工作原理 234
9.2.5 调用.NET Web服务 236
9.2.6 创建代理类 240
9.3 Web服务实现 243
9.3.1 设计协定 243
9.3.2 最小化往返次数 244
9.3.3 验证和授权 244
9.3.5 发布和部署Web服务 246
9.3.4 管理状态 246
9.4 优化Web服务 247
9.4.1 异步调用 247
9.4.2 SOAP扩展 250
9.4.3 极端优化 251
9.5 本章小结 252
第10章 向.NET应用程序公开数据 253
10.1 公开专有数据 254
10.1.1 使用定制的类 254
10.1.2 DirectoryListing类 255
10.1.3 创建内存中的表 259
10.1.4 使用DirectoryListing类 263
10.1.5 使用OLE DB提供程序 266
10.2 .NET数据提供程序揭密 268
10.2.1 .NET数据提供程序的结构 269
10.2.2 实现连接 270
10.2.3 实现命令 272
10.2.4 实现数据阅读器 272
10.2.5 实现数据适配器 273
10.2.6 简单数据提供程序与复杂数据提供程序 274
10.3 编写简单数据提供程序 274
10.3.1 表映射机制 275
10.3.2 填充DataSet对象 276
10.3.3 使用简单数据提供程序 277
10.3.4 更新数据源 278
10.4 本章小结 282