收到《道不远人--深入解析ASP.NET 2.0控件开发》样书 (面市时间、价格、目录、推荐序)

[本书适合习惯阅读示例代码来学习的朋友(我就是这样的),如果您习惯大量篇幅的论述,本书可能不适合您。本书中的大部分章节中的文字,基本上都是用来组织、串接各个实例代码的,或者是一些简单的思路的描述]

目录
Jeffrey Zhao 推荐序
网上订购

要感谢的人太多,不能一一列举。再次谢谢大家支持!
在这本书的完成过程中,我们一直在和时间赛跑,才得以勉力在这么短的时间里把书弄出来。
虽然我们追求在速度和质量这间求得一个平衡,但毕竟时间太短,所以质量上定有不如人意之处,欢迎大家理性批评指正,并宽容包涵。


昨天收到博文视点编辑寄来的样书,第一句要说的就是博文视点的工作人员辛苦了,8月初交完稿,9月底就完成了出版流程,只差一步就能面市。

收到书后,对印刷质量我很满意,版式也非常不错,当然受时间所限,也有一些小的瑕疵:个人觉得,封底很有节奏,封面则塞得太满,太抢了点,反而没有重点了,我想如果把门神图形淡化到40%或低点,不和书题冲突可能感觉好些,下面的红色条也可以淡点。此外,两页彩插同样的觉得太满了,多留些边距可能内容显得更内聚一些,全黄底和全书风格也有点相挤兑的感觉。

全书600多页,书的最后定价是69.8元(本来出版社认为这本书有彩插光盘等,可以定为89,我坚持买70元以下大家更易于接受点,最后还是听取了我的意见,这里要感谢出版社对我的信任),在网上购买打完折50块,不算特别贵。:)

关于面市时间,按原计划是在10.1前面市,最终因图书审批等过程略有耽搁,所以要推迟到10.1节后。

目  录


第1章  理解ASP.NET编程模型 1
1.1  ASP.NET运行时模型 2
1.2  HttpModule应用举例 4
1.2.1  二级域名Cookie处理 5
1.2.2  RegexUrlMapping 7
1.3  HttpHandler应用举例 12
1.4  HttpHandlerFactory应用举例 15
1.5  页面编程模型 17
1.6  页面编程模型应用举例 20
1.6.1  生成静态缓存页面 20
1.6.2  控制页面状态存取 23
1.7  本章小结 28
第2章  呈现内容 29
2.1  选择基类 29
2.2  System.Web.UI.Control.Render()方法 30
2.2.1  HelloWorld 31
2.2.2  相册 33
2.2.3  Render()是怎样被调用的 34
2.3  HtmlTextWriter的两个拍档 35
2.4  WebControl的呈现过程 38
2.4.1  继承WebControl的“相册”控件 40
2.5  CompositeControl的呈现过程 42
2.5.1  EmailInput控件 42
2.5.2  组合控件如何呈现子控件 44
2.6  装饰Attribute 47
2.7  本章小结 49
第3章  属性 50
3.1  公开控件属性 51
3.2  属性的持久化 54
3.2.1  视图状态 54
3.2.2  控件状态 55
3.2.3  应用视图状态 55
3.2.4  应用控件状态 57
3.3  属性在页面源码中的表达方式 58
3.3.1  属性在源代码中的各种表现形式 58
3.3.2  处理标签间的内容 60
3.3.3  源代码视图控件 65
3.4  IStateManager与复杂属性的状态持久 69
3.4.1  IStateManager 70
3.4.2  处理集合属性 72
3.4.3  表示复杂属性和隐藏属性 74
3.5  处理子控件 76
3.5.1  Control.AddParsedSubObject()方法 76
3.5.2  ControlBuilder 78
3.6  属性细节 80
3.7  本章小结 83
第4章  事件与回传 84
4.1  事件与委托 84
4.2  ASP.NET中的回传框架 85
4.3  数据回传 87
4.3.1  AutoFlexTextArea控件 87
4.4  回传事件 98
4.4.1  回传事件原理 98
4.4.2  IPostBackEventHandler接口 100
4.5  组合控件事件冒泡 108
4.5.1  OnBubbleEvent方法和RaiseBubble
4.5.1  Event方法 110
4.6  事件验证 112
4.7  本章小结 112
阶段项目A  CompositeNumericUpDown 113
A.1  从CompositeControl开始 114
A.2  丰富控件样式 117
A.2.1  PositionStyle 118
A.2.2  应用PositionStyle 127
A.3  维护视图状态 131
A.4  回传数据与回传事件 133
A.4.1  回传数据 133
A.4.2  回传事件 134
A.4.3  事件冒泡 135
A.5  项目小结 145
第5章  脚本与资源集成 146
5.1  ClientScriptManager与HttpBrowser
5.1  Capabilities 147
5.1.1  ClientScriptManager概述 147
5.1.2  用HttpBrowserCapabilities类检验浏览器 148
5.1.3  Response.Write 150
5.2  呈现脚本 154
5.3  集成资源文件 161
5.3.1  外部JS文件与部署 161
5.3.2  JQuery简介 163
5.3.3  TabbableTextArea 164
5.4  AJAX与回调 167
5.4.1  ICallbackEventHandler 168
5.4.2  选项卡控件 169
5.5  本章小结 180
第6章  设计时支持 181
6.1  设计时功能综述 181
6.2  设计器 183
6.2.1  设计时呈现 185
6.2.2  自动格式设置 187
6.2.3  智能任务列表 190
6.2.4  设计器区域 194
6.2.5  支持模板 200
6.3  类型编辑器 204
6.3.1  UITypeEditor概述 204
6.3.2  RotateImage 206
6.4  TypeConverter 213
6.4.1  TypeConverter概述 214
6.4.2  支持标准值 215
6.5  本章小结 218
阶段项目B  DateChooser 219
B.1  功能介绍 221
B.1.1  运行时功能 221
B.1.2  设计时功能 223
B.2  项目设计 225
B.2.1  项目分解 225
B.2.2  客户端设计 225
B.2.4  服务端设计 227
B.3  实现控件 227
B.3.1  实现客户端行为 227
B.3.2  控件呈现 232
B.3.3  设计时支持 237
B.4  项目小结 242
第7章  验证控件 244
7.1  ASP.NET验证框架概述 244
7.1.1  服务端验证 245
7.1.2  客户端验证 246
7.1.3  BaseValidator类 248
7.2  扩展验证控件的功能 250
7.2.1  客户端验证 251
7.2.2  组织服务端 252
7.3  改善验证控件的用户体验 255
7.3.1  ValidatorCallout客户端实现 256
7.3.2  ValidatorCallout服务端实现 261
7.3.3  ValidatorCalloutExtender 262
7.4  本章小结 264
第8章  模板控件 265
8.1  ASP.NET模板概述 265
8.1.1  ITemplate 266
8.1.2  TemplateContainerAttribute 266
8.1.3  设计时支持 267
8.2  实现模板控件 268
8.2.1  BookData 269
8.2.2  BookInfo控件 273
8.2.3  BookInfoDesigner 276
8.3  提供默认模板 278
8.3.1  DefaultBookInfo 278
8.4  本章小结 281

第9章  数据绑定 282
9.1  ASP.NET数据绑定框架 282
9.1.1  单向数据绑定 283
9.1.2  双向数据绑定 289
9.1.3  BindableAttribute & DataBinding
9.1.3  HandlerAttribute 300
9.2  数据绑定控件 301
9.2.1  ASP.NET 1.x数据绑定控件结构 302
9.2.2  ASP.NET 2.0数据绑定控件结构 309
9.2.3  CompositeDataBoundControl 310
9.2.4  HierarchicalDataBoundControl 320
9.3  数据绑定控件单元格 325
9.3.1  RequiredBoundField 331
9.3.2  TowStateField 333
9.4  本章小结 338
第10章  数据源控件 339
10.1  数据源控件工作原理概述 340
10.1.1  数据源控件 341
10.1.2  数据源视图 345
10.1.3  参数 356
10.2  实现数据源控件 357
10.2.1  RssDataSource 358
10.2.2  RssDataSourceView 359
10.2.3  RssDataSourceDesigner 360
10.3  实现参数对象 365
10.3.1  MethodParameter 365
10.4  本章小结 371
阶段项目C  ListView 372
C.1  扩展ListView 373
C.1.1  提供原始值 373
C.1.2  双向绑定 375
C.1.3  事件管理 375
C.2  实现ListView 377
C.2.1  DataKeys 377
C.2.2  状态管理 380
C.2.3  编辑模板 384
C.2.4  事件处理 385
C.2.5  生成控件 394
C.3  实现设计器 399
C.3.1  ListViewDesigner 399
C.4  项目小结 409
第11章  WebParts 410
11.1  WebParts框架概览 410
11.2  创建WebPart 413
11.2.1  HelloWorldPart 413
11.2.2  RssWebPart 416
11.2.3  自定义谓词 421
11.3  创建WebPartZone 423
11.3.1  自动显示RSS列表的OPMLWebPart
11.3.1  Zone 424
11.3.2  定制WebPartZone布局 428
11.4  美化WebPart 434
11.4.1  定制区域边框 434
11.4.2  定制WebPartChrome呈现WebPart
11.4.2  的方式 435
11.5  目录部件 442
11.5.1  OPMLCatalogPart 444
11.6  目录区域 447
11.6.1  DragDropCatalogZone 447
11.6.2  GridViewCatalogZone 455
11.7  编辑部件 460
11.7.1  RssEditorPart 461
11.8  扩展WebPartManager 465
11.8.1  WebPartManager概述 466
11.8.2  根据角色过滤WebPart 467
11.8.3  自定义显式模式 468
11.9  本章小结 472
第12章  ASP.NET AJAX 473
12.1  ASP.NET AJAX框架 474
12.1.1  ASP.NET AJAX服务端框架 475
12.1.2  ASP.NET AJAX客户端框架 476
12.1.3  ASP.NET AJAX 组件 478
12.2  扩展ASP.NET AJAX框架功能 483
12.2.1  Sys.WebForms.PageRequestManager 483
12.2.2  实现UpdateDisabler客户端控件 484
12.2.3  实现UpdateDisabler服务端控件 488
12.3  实现ASP.NET AJAX控件 493
12.3.1  实现客户端ToolTipsControl 494
12.3.2  实现服务端ToolTipsControl 503
12.4  实现ASP.NET AJAX行为 509
12.4.1  实现客户端ToolTipsBehavior 509
12.4.2  实现服务端ToolTipsExtender 516
12.5  实现自定义ControlToolkit 521
12.5.1  AJAX Control Toolkit实现框架 521
12.5.2  实现自定义Control Toolkit客户端行为 524
12.5.3  实现自定义Control Toolkit服务端控件 531
12.5.4  Control Toolkit的设计器 535
12.6  本章小结 547
第13章  本地化、许可与保护 548
13.1  为控件提供本地化支持 548
13.1.1  实现本地化控件 551
13.1.2  实现控件设计时本地化 555
13.2  控件许可 558
13.2.1  .NET许可框架 559
13.2.2  ExpirePolicyLicense 559
13.3  保护程序集 567
13.4  本章小结 570
第14章  实现WAP控件 571
14.1  ASP.NET移动窗体的不足 572
14.2  实现WAP窗体框架 573
14.2.1  将控件状态持久在服务端 574
14.2.2  处理中文字符 576
14.2.3  组织WAP控件 578
14.3  实现WAP控件 585
14.3.1  实现MobilePage页面类 585
14.3.2  实现MobileLiteral、Card、Panel控件 592
14.3.3  实现Input和Button控件 597
14.4  测试和部署 605
14.4.1  测试WAP框架 605
14.4.2  更方便地创建WAP应用 608
14.5  本章小结 611

JeffreyZhao所作推荐序-- “道不远人”,然也

七月的某日收到了谭兄的Email,他希望我为其中有关ASP.NET AJAX的章节“把把关”。之前听说谭兄正在努力耕耘一本新书,却无缘得见,现在忽然得到了先睹为快的机会,自然欣然接受。后来得谭兄信任,我本可为整本书的内容进行技术审阅,却因为书籍出版的进度问题只得作罢,不过却也让我有幸一窥新书全貌。后谭兄又邀请我写一则推荐序,是时我大约读完了整部书稿,正好有话想说,也就“顺手”写了这么一篇“流水账”,希望能让谭兄满意。
扪心自问,如果要我评价一下国内IT技术书籍的情况,我只有拿出“失望”二字给予作答。在读者眼中,国内充斥着大量低质量的原创IT技术书籍;对于作者来说,国内极低的写作报酬和糟糕的写作氛围使他们的作品无法反映出自己的全部水准;而站在出版社的角度上看,图书出版似乎也变成越来越纯粹的商业活动,一切都要依靠商业运作。读者、作者、出版社三方互成擎肘,形成了目前稳固而病态的局面。有时候我会想,为什么读者不能多给一些鼓励和建议,少一些谩骂呢?为什么作者和出版社不能放下“利益”二字,一起为读者提供一些真正美味的精神大餐呢?如果要改变目前的情况,至少要有一方要做出让步,而让步的代价则是牺牲自己的利益,但是我们没有理由强迫任何人成为“无私的共产主义战士”。
面对这样的情况,我选择了回避。我已经有很长时间不关心国内IT技术书籍的出版情况而直接从国外进行选购,也多次婉拒了各个出版社的写作邀请。但是谭兄对此却有着自己的看法,他多次呼吁大家不要对国内计算机出版业的发展与逐渐成熟熟视无睹,不要固执的认为国产计算机图书就一定比不过引进图书。谭兄这本书的好坏,每个人都有自己的理解,但是我相信大家都能从这本书上看出,他在用自己的方式,一个IT技术书籍作者应有的方式,为他自己的呼吁做出回应。国内的IT技术书籍可能在短时间内还无法有非常明显的进步,但是谭兄和他的这本书,似乎让我找回了一丝享受阳光的信心。
我是一个“嗜书如命”的人,每年都会看完大约十余本IT技术书籍。从我的经验上来看,IT技术书籍往往可以分为 “道”和“术”两类。“道”传授的是思想,讲究的是一种沉淀,“术”传递的是“方法”,讲究的是一种表现,此正所谓“术于外,而道于内”。对于我个人来说,更倾向于阅读有关“道”的书籍,然而“术合于道,相得益彰;道术相离,各见其害”,我们也不应该忽视“术”的重要性。
写到这里,我忽然觉得刚才的话有些不妥。我们身处IT业,“唯一不变的只有变化本身”,可能更多人等不及“道”的沉淀,我们可能更需要“术”所带来的快速回报。我们所接受到的“术”已太多,却难觅“道”的踪影。君不见,越来越多的开发人员认为30岁会成为他们程序员生涯的“大限”,越来越多的开发人员在抱怨他们正为日新月异的技术所累。在我看来,这些正是因为缺少了“道”的缘故。我们太过追求于“术”本身,而缺少了“道”的积累。
我曾多次建议一些如此抱怨的朋友们平缓心情,将思维跳开技术运用(也就是“术”)本身,将目光投向技术其他一些方面,例如某种技术的形成原因(从中可以寻找“道”的痕迹)等等。但是实践证明,这样的建议并没有太高的可行性,因为大多数人最需要了解的还是大量的技术运用。也正因为如此,市场上最受欢迎的往往是一些由大量实例组成的书籍。这样的书籍可以给读者带来快速产出的成就感,正如同微软技术大会上的新技术演示一般的令人愉悦。
我认为,“道”和“术”两类书籍不该以同样的准则来判断其好坏,因为他们既然方向不同,为什么要强求“殊途同归”呢?对于 “术”书来说,我主要通过知识面的“完整性”和示例的“成熟度”来评价其优劣。我平时也常阅读一些“术”书来了解新技术,经常会感到某些书籍覆盖的知识面不很完整,其中的例子也并不成熟,很难将其直接运用在生产中,甚至有时候会在读完之后感到自己掌握了不少,在实际运用中却发现依旧什么都不会——相信不少朋友和我有过同样的感受。
让我欣喜的是,谭兄的这本书在知识面的“完整性”和示例的“成熟度”上都让我比较满意。这是一本关于ASP.NET的书,确切地说是一本关于ASP.NET控件开发的书,它覆盖了控件开发的各个方面,更包含了一些以往不为人所重视的内容。例如,我看到书中有关ASP.NET对于客户端脚本支持的章节时心想,如果更多人能够早点接触到这部分内容,那么大家对于目前ASP.NET AJAX的掌握就能更加轻松和愉快了——当初我收到次数最多的问题就是“为什么使用Response.Write方法输出脚本会导致UpdatePanel失败?”,而我的答案,也就是书中强调的一点,那就是“杜绝使用Response.Write方法,而使用ASP.NET框架的相关支持来注册脚本”——这是一种方法,更是一种习惯或准则:如果我们使用框架提供的“正统”方法进行开发,世界将会变得更加美好。至于示例,我想则更不用多说,大家可以直接将书翻至DateChooser项目,享受一下阅读一个完整而实用的示例所带来的爽快感觉。
之前在和谭兄的聊天中曾听他谈到过写这本书的目的,就是希望更多人能够了解到“只要方法正确,开发ASP.NET控件并不困难”。这本书虽传递的是“术”,但是却也在寻觅着“道”的踪迹。虽说大部分开发人员并不会涉及ASP.NET控件的开发,但是我依旧会向他们推荐这本书——如果他们需要一些提高ASP.NET技术能力的资源。因为我认为这本书更重要的作用是帮助读者掌握ASP.NET的一个关键部分,那就是ASP.NET的控件模型。如果您还能够从中得出更深层次的体会,那么这本书的价值就被充分地挖掘出来了——其实我们都在追求着“道”,不是吗?
刚欲搁笔,忽又想起了本书的标题——“道不远人”。然也。

 

赵劼
2008年8月19日凌晨

网上订购地址

http://www.dearbook.com/book/213157
http://www.china-pub.com/computers/common/info.asp?id=35849
posted @ 2007-09-29 11:46 Lyn 阅读(7415) 评论(130)  编辑 收藏 网摘 所属分类: My Books

  回复  引用    
#1楼 2007-09-29 11:53 | bravezhangher [未注册用户]
已经买到了昨天晚上买的
  回复  引用    
#2楼 2007-09-29 11:54 | bravezhangher [未注册用户]
正在看写的不错,支持下
  回复  引用  查看    
#3楼 2007-09-29 12:03 | Anders Cui      
恭喜了!
  回复  引用  查看    
#4楼 2007-09-29 12:27 | Phinecos(洞庭散人)      
书名挺奇怪的,这个“远”字如何理解?
  回复  引用  查看    
#5楼 [楼主]2007-09-29 12:56 | THIN      
道不远人,指看似复杂的技术并不一定难以掌握

  回复  引用    
#6楼 2007-09-29 12:59 | steven11 [未注册用户]
2008年8月19日凌晨
怎么到2008年了!呵呵
  回复  引用    
#7楼 2007-09-29 13:24 | fa [未注册用户]
这本书能否提供2-3章的内容试读一下。
  回复  引用    
#8楼 2007-09-29 13:25 | fa [未注册用户]
这本书打折后多少钱?
  回复  引用  查看    
#9楼 2007-09-29 13:36 | today      
书的内容看起来挺丰富的,不知道深度如何。先恭喜啦!
  回复  引用    
#10楼 2007-09-29 13:39 | Kensei [未注册用户]
福州这边现在有的卖了吗,我在网上订购 ,怎么输入邮箱跟姓名就没下文了
  回复  引用  查看    
#11楼 [楼主]2007-09-29 14:23 | THIN      
@fa
出版社会提供几章试读的
  回复  引用    
#12楼 2007-09-29 15:20 | ???? [未注册用户]
赵劼
2008年8月19日凌晨
  回复  引用    
#13楼 2007-09-29 15:40 | 苦花菜 [未注册用户]
#4楼 回复 引用 查看
书名挺奇怪的,这个“远”字如何理解?
2007-09-29 12:27 | Phinecos(洞庭散人)

远在此处作动词,意为疏远!
  回复  引用  查看    
#14楼 2007-09-29 17:43 | 戏水      
恭喜 啦
送我一本吧 o(∩_∩)o...哈哈
  回复  引用    
#15楼 2007-09-29 19:01 | heying [未注册用户]
恭喜谭老师了,赶紧购买,以表支持,呵呵!
  回复  引用  查看    
#16楼 2007-09-29 19:16 | 周银辉      
祝贺!!
  回复  引用  查看    
#17楼 2007-09-29 20:23 | MK2      
呵呵, 这本比之前某人那本, 好多了吧.....最重要的是, 价格不像人家那么牛贵..
  回复  引用  查看    
#18楼 2007-09-29 21:01 | 融化了的朱古力      
呵呵,恭喜恭喜!
  回复  引用    
#19楼 2007-09-29 22:43 | e2mars [未注册用户]
WELL,明天就去买。
  回复  引用  查看    
#20楼 2007-09-30 00:19 | volnet(可以叫我大V)      
恭喜噢
  回复  引用    
#21楼 2007-09-30 02:33 | Laurel [未注册用户]
能放在Amazon上就好了~ 看来只有回家买老。
  回复  引用  查看    
#22楼 2007-09-30 08:49 | 麒麟.NET      
恭喜谭兄
  回复  引用  查看    
#23楼 2007-09-30 08:59 | Jeffrey Zhao      
呀?2008年?自然应该是2007年……
  回复  引用  查看    
#24楼 2007-09-30 10:00 | beyondjay      
最近涉及到一些控件开发,发现其实这方面深入的资料很少,能看到这样的书很高兴。
  回复  引用    
#25楼 2007-09-30 10:30 | mai le [未注册用户]
价格挺好的,买了。
  回复  引用  查看    
#26楼 2007-09-30 11:18 | Bruce Zhang      
恭喜,恭喜!
  回复  引用  查看    
#27楼 2007-09-30 14:21 | 金色海洋(jyk)      
讲了好多原理的地方呀。
  回复  引用    
#28楼 2007-09-30 21:12 | row [未注册用户]
一定捧场 站在巨人的肩膀上学习
  回复  引用  查看    
#29楼 2007-10-01 07:52 | yunhuasheng      
恭喜,看了这个书目,感觉书的内容应该是很不错,到时一定买而看之!!
  回复  引用  查看    
#30楼 2007-10-01 13:42 | baishun      
以前从来就不晓得在IT业还有--"道"和"术"这样的新鲜词汇,看完推荐序后才领悟!感觉书名中"道不远人"四个字很有深度和内涵,为我们学习编程语言指明了方向!
  回复  引用  查看    
#31楼 2007-10-02 20:58 | Dflying Chen      
恭喜谭兄
  回复  引用  查看    
#32楼 2007-10-02 22:17 | Justin      
关注好久啦!能买到了?沙发那位不要乱说啊
  回复  引用    
#33楼 2007-10-04 04:38 | w [未注册用户]
呵呵,还不错。
  回复  引用  查看    
#34楼 2007-10-04 15:27 | Cat Chen      
什么时候才能买到?很想买一本作为参考书。
  回复  引用    
#35楼 2007-10-09 10:37 | sorcom [未注册用户]
什么时候才能买到?很想买一本作为参考书。
  回复  引用    
#36楼 2007-10-09 10:44 | 飕飕 [未注册用户]
非常不错的一本书!!支持thin!!恭喜恭喜!
  回复  引用  查看    
#37楼 2007-10-09 12:46 | Justin      
怎么样了?可以在书店买到了吗?
  回复  引用  查看    
#38楼 2007-10-09 13:40 | i      
赵劼
2008年8月19日凌晨

居然超越时空了....
  回复  引用  查看    
#39楼 [楼主]2007-10-09 19:25 | THIN      
@Justin
有人在北京买到了,网上还没有
  回复  引用  查看    
#40楼 2007-10-10 00:03 | 人一已百      
谭振林老师,恭喜您的书出版啦;
小弟刚入道才两年,.net了解还不是很多,这书对我有帮助,
我买了,也对你支持一下;想在您这里直接买;
想要您的签名留言,这样我学的会更有信心!
速回!
  回复  引用  查看    
#41楼 [楼主]2007-10-10 08:15 | THIN      
@人一已百
签名没问题,只是我这里没有书卖啊,我不是卖书的,你先买了,我再签,好不好?
后期好像会有签名售书会,但不知要到什么时候,活动也要搞了才能算数,现在他们出版社也资源紧张,说的话也不能全信,而且这种活动一般在书城搞,买书没折的。
  回复  引用    
#42楼 2007-10-10 09:50 | KING232 [未注册用户]
网上怎吗还没有呢
  回复  引用    
#43楼 2007-10-10 13:10 | shre [未注册用户]
很期待,希望早日可以买到,支持thin!
  回复  引用    
#44楼 2007-10-10 20:41 | Innovation.NET [未注册用户]
Thin 兄,您的新書我已經拖上海的朋友幫我買到了,內容真的不錯。雖然寄到台灣運費比這本書貴~哈,不過下次您有新書我一定會在捧場的...
  回复  引用  查看    
#45楼 [楼主]2007-10-10 21:23 | THIN      
@Innovation.NET
看到您的留言,突然我感到有些内疚,因为自己拿到书后看了看,觉得要不是为了赶时间,可以将内容组织得更好些,更容易理解些。
如果以后还写书的话,应该要投入更多精力才是。
  回复  引用    
#46楼 2007-10-10 21:27 | bbqqw [未注册用户]
《道不远人--深入解析ASP.NET 2.0控件开发》
  回复  引用    
#47楼 2007-10-10 22:44 | Innovation.NET [未注册用户]
THIN 兄:
您客氣了,內容真的很棒,這本書我從8月就叫上海的朋友一直幫我留意了,直到前幾天朋友跟我說看到了,我才請他幫我購買並火速寄回台灣,這一我第一次買簡體書,當然也怕買到一本不好的書,可是看了以後內容果然值回票價,下次THIN兄若再出書,我一定會在捧場。

看到書中THIN兄與陳南海先生,聊天時說的這一句話,讓我有很深的感觸
>>
.NET本身就像倚天劍,但往往是使用者功夫不深而局限了他的威力,現在我們手中已經有倚天劍,我們還需要一身的好功夫才能立於不敗之地,要不然倚天劍也只能當菜刀用了。

>>希望各位讀者與走在技術前線的人,都可以好好運用.NET這把倚天劍。
  回复  引用    
#48楼 2007-10-14 14:37 | deik [未注册用户]
看到谭兄的付出终于有了点滴的回报,深感安慰。
你的无私付出,对这个社会的责任感以及博大胸怀,为人们树立了楷模,你就是一个标杆,
带领我们走向更远的方向,攀登更高的山峰。祝贺你的书畅销,好人一生平安。

  回复  引用    
#49楼 2007-10-15 15:27 | relic [未注册用户]
马上去购买该书,读完后感觉棒极了,很多以前没有解决的问题,在这里都一一得到很详尽的解答。
太感觉作者了,该书太值得珍藏了。而且是物超所值的。

  回复  引用    
#50楼 2007-10-15 15:31 | 陶睿 [未注册用户]
請問作者在香港可以買到嗎?
  回复  引用  查看    
#51楼 [楼主]2007-10-15 20:55 | THIN      
@陶睿
暂时还买不到,过来深圳买
  回复  引用    
#52楼 2007-10-16 20:00 | kansei [未注册用户]
请问有谁知道 在福州哪里可以买的到
  回复  引用  查看    
#53楼 [楼主]2007-10-17 11:17 | THIN      
@kansei
最好还是网上买吧,便宜
  回复  引用  查看    
#54楼 2007-10-17 19:39 | 灰灰狼      
当当网上有一本老外写的《ASP.NET2.0服务器控件与组件开发高级编程》,不知道写的咋样,我正在考虑都买,还是只买你的,呵呵。
我以前写过TreeView、Menu、分页等控件,从我的经验来看,写控件是很需要综合能力的,前后台都要懂,很能锻炼技术。
楼主的每篇文章都写的超级棒,很想认识一下,如果能来上海就好了,上海治安很不错的。
  回复  引用  查看    
#55楼 [楼主]2007-10-17 19:47 | THIN      
@灰灰狼
那本我没有细看,内容组织方式和我的不同,内容也有很大不同
  回复  引用  查看    
#56楼 2007-10-19 12:25 | 金戈铁马      
书店有售了,我买了一本阅读,确实写得很好!谢谢作者在控件开发领域为读者提供这么好的作品!
  回复  引用  查看    
#57楼 2007-10-19 19:49 | 阿滨       
买了着本书。有些内容还是看不太明白啊。。。
  回复  引用  查看    
#58楼 [楼主]2007-10-19 21:52 | THIN      
@阿滨
如果对于ASP.NET 2.0的控件有丰富的使用经验,那么看起来会轻构很多。不过如果对各个控件没有深刻认识,那么控件知识是你迅速把握控件的一条途径。
不明白的地方你可以提出来,大家可以进一步交流
  回复  引用  查看    
#59楼 2007-10-19 22:42 | 让风吹--笨牛      
昨天去书店,想买一本ASP.Net的,扫了一眼,是博客园的,就选它了。

以前没有搞过asp.net...
  回复  引用    
#60楼 2007-10-20 15:48 | been [未注册用户]
在外拼杀多年,累了。看到同事们在追求“术”的过程中还能冷静下来“沉”于“道”,仿佛为自己曾经累的心找到了一丝良药,也为曾经飞远的心找到了回归的路。
  回复  引用  查看    
#61楼 2007-10-20 17:24 | 马洋      
现在还在入门,等学好了基础,再拜读。楼主可否推荐入门书籍
  回复  引用  查看    
#62楼 [楼主]2007-10-22 20:25 | THIN      
@马洋
<ASP.NET 2.0揭密是本不错的书>,虽然贵,但是内容绝对值
  回复  引用    
#63楼 2007-10-23 11:24 | imeger [未注册用户]
楼主说的很对!支持!
  回复  引用  查看    
#64楼 2007-10-23 11:38 | 仁面寿星      
周日在深圳八卦岭书店买了,还不错8折,56元入手
  回复  引用    
#65楼 2007-10-23 20:01 | 小小过客 [未注册用户]
请问一下,怎样实现在点DropDownList的时候,弹出一个类似于GRIDVIEW一样的控件选数据?
  回复  引用    
#66楼 2007-10-23 20:04 | 小小过客 [未注册用户]
再问一下,用GRIDVIEW如何分组
  回复  引用  查看    
#67楼 [楼主]2007-10-23 20:38 | THIN      
--引用--------------------------------------------------
小小过客: 请问一下,怎样实现在点DropDownList的时候,弹出一个类似于GRIDVIEW一样的控件选数据?
--------------------------------------------------------
DropDownList本身是不能没有模板功能的,所以你可能需要实现一个支持模板的控件,而且也需要用层加上一些脚本来模拟弹出的效果,和选择的功能。
--引用--------------------------------------------------
小小过客: 再问一下,用GRIDVIEW如何分组
--------------------------------------------------------
protected override void Render(HtmlTextWriter writer)
{
// Only add the sorting UI if the GridView is sorted
if (!string.IsNullOrEmpty(ProductList.SortExpression))
{
// Determine the index and HeaderText of the column that
//the data is sorted by
int sortColumnIndex = -1;
string sortColumnHeaderText = string.Empty;
for (int i = 0; i < ProductList.Columns.Count; i++)
{
if (ProductList.Columns[i].SortExpression.CompareTo(ProductList.SortExpression) == 0)
{
sortColumnIndex = i;
sortColumnHeaderText = ProductList.Columns[i].HeaderText;
break;
}
}


// Reference the Table the GridView has been rendered into
Table gridTable = (Table)ProductList.Controls[0];

// Enumerate each TableRow, adding a sorting UI header if
// the sorted value has changed
string lastValue = string.Empty;
foreach (GridViewRow gvr in ProductList.Rows)
{

string currentValue = string.Empty;
if (gvr.Cells[sortColumnIndex].Controls.Count > 0)
{
if (gvr.Cells[sortColumnIndex].Controls[0] is CheckBox)
{
if (((CheckBox)gvr.Cells[sortColumnIndex].Controls[0]).Checked)
currentValue = "Yes";
else
currentValue = "No";
}

// ... Add other checks here if using columns with other
// Web controls in them (Calendars, DropDownLists, etc.) ...
}
else
currentValue = gvr.Cells[sortColumnIndex].Text;

if (lastValue.CompareTo(currentValue) != 0)
{
// there's been a change in value in the sorted column
int rowIndex = gridTable.Rows.GetRowIndex(gvr);

// Add a new sort header row
GridViewRow sortRow = new GridViewRow(rowIndex, rowIndex, DataControlRowType.DataRow, DataControlRowState.Normal);
TableCell sortCell = new TableCell();
sortCell.ColumnSpan = ProductList.Columns.Count;
sortCell.Text = string.Format("{0}: {1}", sortColumnHeaderText, currentValue);
sortCell.CssClass = "SortHeaderRowStyle";

// Add sortCell to sortRow, and sortRow to gridTable
sortRow.Cells.Add(sortCell);
gridTable.Controls.AddAt(rowIndex, sortRow);

// Update lastValue
lastValue = currentValue;
}
}
}

base.Render(writer);
}
  回复  引用  查看    
#68楼 2007-10-25 23:53 | 骆明亮      
一顶买!
  回复  引用  查看    
#69楼 2007-10-29 21:14 | 阿滨       
我有几个地方不明白,自定义控件要引发LoadPostData方法,必备要求是什么(是需要包含一个id为this.uniqueid的控件吗),引发SaveViewState和LoadVieWState方法,必备要求是什么(write.RenderBeginTag(HtmlTextWriterTag.Input))是必须有Input吗?我改成Div,或者别的控件都不行,回传这个我当然知道是必须的.
  回复  引用  查看    
#70楼 2007-10-29 21:15 | 阿滨       
是是说把 HtmlTextWriterTag.Input该成HtmlTextWriterTag.Div,HtmlTextWriterTag.Area等等都不行
  回复  引用  查看    
#71楼 [楼主]2007-10-29 22:17 | THIN      
页面会在合适的时候递归调用子控件的SaveViewState和LoadViewState,所以只要是控件,并被正确的加入到页面的表单中,它们的这些方法就会被调用(ViewState没有被禁用)
实现了IPostbackDataHandler接口的控件就能参与加载回传数据的过程。但是你要明白一点,数据怎么样才能被回传回来?
所谓回传数据就是Form表单中提交回来的数据,所以表单域(input