9.9 谈GridView的AJAX异步Callback
身为DataGrid的新一代接班人,Gridview除了在许多外观及功能上明显比DataGrid好用且进步外,在本质上GridView也和DataGrid有一个截然不同的特点,就是GridView骨子里天生带有Callback异步的能力,这是DataGrid所不具有的,而GridView异步的Callback功能在使用上也颇为简单,无须大费周张写一堆啰嗦的Code,使用上愈是简单容易,对广大的使用群体来说受益就愈大。只要将GridView的“EnableSortingAndPagingCallbacks”属性设置为True就可以了,随后,Callback异步的能力会立即产生作用,表现在分页(Page)与排序(Sorting)两个地方,各位在运行GridView的分页与排序时会发现速度不但变快,且消除了传统Postback操作及界面闪动,小小的设置即能够产生不少效益。
然而,GridView的Callback也有一个限制,即一旦启用了Callback能力,GridView就不能使用数据透视表选取模式(selection),否则,运行时就会产生错误警告的消息。它们之间是互斥的,毫无妥协商量的余地。而且GridView的Callback能力并不是全面性的,怎么说呢?上面挑明了只有分页与排序两个操作会受益,对于编辑、选择、删除或更新等等的操作并无普及。但这并不能怪微软或GridView控件,因为GridView被创造出来时AJAX并没有大红,所有软件大厂也没意识到这项技术的重大潜力,故GridView能预先加入Callback异步能力已是难能可贵的了,况且同期所有竞争者产品技术亦一样没有融入AJAX解决方案,所以大家不必在这方面多所苛责。
那这是否意味着只能将就或者无解?倒也不尽然!祭司在本书第6章已传授给各位一面AJAX魔镜,当您有什么AJAX异步的愿望都可以向那面魔镜求助。祭司告诉各位只要善加利用ASP.NET AJAX的UpdatePanel这面魔镜,很多异步的问题就能迎刃而解,且又不费力。请各位参考第6章的范例“GridView控件结合ASP.NET Atlas异步”,程序名称为AtlasGridView.aspx,再回头温习温习,使用UpdatePanel之后,GridView控件不但分页、排序能够异步,甚至连编辑、删除、选取与更新亦是AJAX异步的,几乎扩展到所有层面都能够进行异步运作。
注
GridView的EnableSortingAndPagingCallbacks功能在下一节的范例会一并示范。






