深爱那片海 发表于 2015-1-16 14:25:10

NET网页编程之DataGrid Web控件运作机制探秘

也许唯一可以让世人留恋Java的理由就剩下它的王牌——跨平台。DataGridWeb控件是三个ASP.NET数据Web控件中功效最多的。正如前文所述,DataGridWeb控件从WebControl类中出生,因而能够指定本人想要的款式。可是在自界说控件天生的实践HTML标志时,它又是最不天真的。出现的HTML标志中的这类不天真性,是因为DataGrid是计划用于利用HTML<table>以表格情势显现数据所酿成的。因而,关于每条绑定到DataGrid的纪录,城市创立一个独自的表行(<tr>),关于要显现的纪录中的每个字段,城市创立一个独自的表列(<td>)。
DataGridWeb控件供应了很多功效,可极年夜地进步要显现的数据的可用性。比方,把DataGrid的AllowSorting属性设置为True并增加一点源代码,开辟职员就能够把一个一般的DataGrid酿成一个其数据能够由终极用户排序的DataGrid。别的,再增添一点事情量,开辟职员就可以加强DataGrid的功效以同意数据分页或数据的内联编纂。这些功效分明加强了DataGrid的可用性。
除在可用性方面得分很高,DataGrid还供应了很短的开辟工夫。要利用DataGrid入手下手在ASP.NETWeb页面中显现数据,只必要把DataGrid增加到Web页面中并编写两行需要的代码:第一行把数据绑定到DataGrid的DataSource,第二行挪用DataGrid的DataBind()办法。明显,跟着增加到DataGrid中的功效数目的增添,开辟工夫也增添了,但这只是把开辟工夫和其他数据Web控件举行对照。假定您要同意对Repeater显现的数据举行排序。增加如许的功效是必定大概的,可是与用DataGrid完成一样的操纵比拟,这必要分明多良多的工夫和精神。
只管DataGrid具有优秀的可用性和开辟工夫得分,可是这个控件有两个固有的弱点。第一,正如后面所谈到的,DataGrid在对所出现的HTML标志举行自界说方面的功效很无限。是的,您能够自界说DataGrid的分歧行和列的字体、色彩和边框,可是现实仍旧是,当DataGrid显现数据时,了局将是一个HTML<table>,DataSource中的每笔记录都对应个中一个<tr>,每个字段都对应个中一个<td>。
详细地说,DataGrid中的每列都是一个从DataGridColumn类中派生的类实例。有五个内置的DataGrid列范例:
1,BoundColumn
2,ButtonColumn
3,EditColumn
4,HyperLinkColumn
5,TemplateColumn
每个列范例都供应数据或供应某种同意用户和DataGrid举行交互的接口。比方,BoundColumn以纯文本显现DataSource字段的值,而HyperLinkColumn则会显现一个超等链接,其笔墨和URL部分多是DataSource字段。除这些内置的列范例,经由过程创立DataGridColumn类的派生类,还能够创立自界说DataGrid列范例。
有了这么多的DataGrid列范例,大概就不睬解为何DataGrid出现的HTML标志不克不及举行高度自界说了。要晓得,固然每个DataGrid列范例在出现时天生分歧的HTML,可是每列都包括在一组<td>标志中,每行都包括在一组<tr>标志中。因而,即便能够用TemplateColumn自界说每行的特定列的HTML输入,而DataGrid仍旧出现为HTML<table>,个中每利用用一个<tr>,每列利用一个<td>。DataGrid的这类限定克制了更多具有制造性的数据显现。比方,假如要在每表行中显现五笔记录,就不克不及利用DataGrid,必需利用DataList或Repeater。别的,假如要在除<table>以外的HTML标志中显现数据,很遗憾,就不克不及利用DataGrid了。
DataGrid第二个弱点是它的功能。DataGrid是这三个数据Web控件中功能最差的。基于这一点,由DataGrid-出格是具有很多行的DataGrids-发生的ViewState大概会十分年夜。假如利用DataGrid仅仅是为了显现数据,则能够封闭ViewState,可是,利用DataGrid的排序、分页或编纂功效时,就不克不及如许做了。
为了测试DataGrid的功能,我利用了Microsoft的收费WebApplicationStressTool(WAST)。在本文最初的“基准设置”一节中列出了准确的测试前提和WAST设置。别的,测试利用的代码也可在本文最初下载。
这个WebApplicationStressTool会向Web服务器收回一组特定的URL哀求。关于每项测试,我都在一分钟以内尽量快地不休哀求一个URL。WAST呈报了很多功能权衡尺度;我要存眷的一个权衡尺度是每秒哀求数,它标明了Web服务器每秒能实行几次ASP.NETWeb页面。
关于一个仅显现数据的复杂DataGrid,运转了两个测试。详细地说,DataGrid显现了来自Northwinds数据库的Customers表(Customers表统共包括91笔记录)的四个字段。DataGrid的AutoGenerateColumns属性设置为True。第一项测试把DataGrid放在一个Web窗体(<formrunat="server">)中,而第二项测试则没有。假如在窗体中安排一个控件而不把它的EnableViewState属性显式设置为False,那末该控件则会用ViewState坚持它的形态。创立这个ViewState项多是一个对照费时的历程,因而削减了可处置的总的每秒哀求数,了局以下图所示。

应当说,DataGridWeb控件的功能并非很幻想。
在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。

山那边是海 发表于 2015-1-18 14:23:09

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

简单生活 发表于 2015-1-26 23:45:30

大哥拜托,Java在95年就出来了,微软垄断个妹啊,服务器市场微软完全是后后来者,当年都是Unix的市场,现在被WindowsServer和Linux抢下大片,包括数据库也一样。

老尸 发表于 2015-2-5 03:10:05

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。

admin 发表于 2015-2-11 03:44:06

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

变相怪杰 发表于 2015-3-1 21:11:39

代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。

冷月葬花魂 发表于 2015-3-11 00:29:04

由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。

透明 发表于 2015-3-17 17:09:37

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。

蒙在股里 发表于 2015-3-24 16:33:49

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
页: [1]
查看完整版本: NET网页编程之DataGrid Web控件运作机制探秘