|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
源代码保护方面其实现在考虑得没那么多了..NET也可以反编译.ASP写得复杂的话别人能看得懂的话.他也有能力自己写了.这方面担心的倒不太多.纵观现在网上可以下载的那些所谓BBS还有什么网站等等的源代码datagrid[概述]
WEB开辟自从有了基于剧本的WEB编程手艺(如ASP)以来,履历了一个冗长的历程。经由过程利用微软的ASP.Net手艺,传统的ASP中大批的、单调有趣的、反复性的编程事情成了汗青。比方,象年夜多半ASP程序员所知的,在ASP中显现数据库内容所必要的历程:
创建数据库毗连
用SQL查询装载ADO数据集
显现所必要的任何HTML代码
遍历数据会合的纪录
输入纪录字段值及相干的HTML
移向下一笔记录
轮回
显现所必要的HTML代码
又如,为了在表格中显现纪录集的内容,我们必要输入一个<table>标签,然后入手下手轮回。在轮回中,每输入一笔记录,必要先输入一个<tr>标签和多少对<td>标签和</tr>标签。最初,以一个</table>标签开头。
在传统的ASP中利用的这类办法有一个次要的弱点:HTML代码与ASP源代码不能不胶葛在一同。关于那些大概其实不了解程序计划的页面计划者或图形艺术家来讲,想要变动HTML内容无疑是一场劫难。别的,代码的发生量也是惊人的,由于我们不但必要从数据库中获得数据,还必要使之可视化。
幸亏,ASP.Net供应了三个数据控件,使得底本在ASP中冗杂的事情变得复杂。这三个控件属于数据Web控件,分离是DataGrid,DataList和Repeater。假如你对ASP.Net数据库编程有所懂得的话,你最少应当有利用个中一种控件的履历。年夜多半情形下,我们从进修利用DataGrid入手下手,由于它的功效绝对完全(数据显现、分页、编纂)并绝对复杂。但是,DataGrid并不是老是准确的选择。
本文将分离叙述每一个数据控件分歧于别的数据控件的特性,和由此带来的优弱点。正由于每种数据控件都有其本身的缺点,因而在程序计划中其实不存在最完善的选择。你必需衡量三种控件的优弱点并决意哪种加倍合适你的程序。
为了匡助对照,在对每一个控件举行叙述时,我们会专注于三个特征:可用性(从页面会见者的角度)、开辟工夫和功能。我们起首形貌一下这三种控件的个性,然后分离深切地会商三种控件的特性,每种控件怎样完成和怎样表现可用性、开辟工夫和功能。
[数据控件(DataWebControls)的配合点]
在我们会商三种控件各自特征之前,有需要先看一看它们之间的配合点。一样平常来讲,从编程流程来看,最明显的配合点就是,这三种控件都是用来显现数据的。另外一个配合点是必要一个数据绑定的代码来将数据与控件绑定。这个历程只必要两行代码:
dataWebControlID.DataSource=someDataSource
dataWebControlID.DataBind()
一样平常情形下,someDataSource工具是指数据控件的数据源属性,能够是DataSet,SqlDataReader,OleDbDataReader或一组数据(如数组、数组列表或别的的属于System.Collection名空间的类)。不外,恣意完成IEnumerable接口的工具也能够被绑定在数据控件上。
DataBind()办法遍历一个特定的DataSource中的纪录,并对个中的每笔记录,创建一个条目并对应数据控件的Item集。数据控件中的每一个条目将成为一个类的实例。这个类因数据控件的分歧而有所区分。比方,DataGrid中的每一个条目是DataGridItem类的一个实例,而Repeater中的条目则是RepeaterItem类的一个实例。
之以是利用分歧的类来实例化分歧数据控件的条目,是由于分歧的数据控件将会利用分歧的体例显现数据及响应的HTML代码。比方,DataGridItem类承继自TableRow类,也就是说,每一个DataGridItem的实例或多或少地能够当作一个表格中的一行。这是由于DataGrid被计划成能够借助HTML中的<table>标签以表格的情势显现数据,因而每笔记录就是一个表格行。而Repeater则被计划成能够自在界说数据输入的体例。以是,RepeaterItem其实不承继自TableRow就不奇异了。
另外一个三种数据控件的不异点是每种控件都被同意利用模板来显现数据。DataList和Repeater控件必需利用模板来输入数据,而DataGrid则同意经由过程TemplateColumn而只利用模板来显现一列(在DataGrod单位中具体叙述)。
另外一个不是非常值得对照的中央是:DataGrid和DataList都是承继自WebControl类,而Repeater则是承继自Control类。WebControl类包括一些用于丑化的属性,如:BackColor、ForeColor、CSSClass、BorderStyle等等。这申明在利用DataGrid或DataList时,你能够设定这些属性来本性化输入。Repeater控件则不具有这些属性。我们会在Repeater单位会商怎样利用模板来丑化Repeater的输入。
[DataGrid控件]
在三种控件傍边,DataGrid是迄今为止功效最为丰厚的,但也是最不天真的控件。这类在输入HTML时不敷天真的特性是由于它最后就是被计划成以表格的情势输入数据。每笔记录输入时会创建一对<tr>标签,而每一个字段的值输入时则创建一对<td>标签。
DataGrid含有几个属性能够进步其可用性。如,经由过程设置DataGrid的AllowSorting属性为true,并到场大批代码,DataGrid就具有了按分歧字段排序的功效。别的,设定相干属性来完成分页和单笔记录编纂的功效加倍加强了DataGrid的可用性。
除在可用性方面的撑持之外,DataGrid同时也相称节俭开辟工夫。利用DataGrid在WEB页面上显现数据只必要两行代码。一行用来设定与DataGrid绑定的数据源(DataSource),另外一条则用来实行绑天命令(DataBind())。固然,在Repeater中完成如许的功效并不是不成能,只是,比拟较利用DataGrid而言,你必要消费相称多的工夫和精神来完成这些功效。
只管DataGrid有如许那样使人印象深入的长处,它的两个弱点也一样不克不及无视。起首,如前所述,DataGrid在本性化输入数据方面功效无限。固然,你能够定制字体、色彩和线条宽度等等,但它一直只能是HTML表格。
每一个在DataGrid中的列都是DataGridColumn类的一个实例。有五种DataGrid列的情势:
・BoundColumn
・ButtonColumn
・EditColumn
・HyperLinkColumn
・TemplateColumn
每品种型城市以一种体例同意页面会见与DataGrid举行交互。比方,BoundColumn将DataSource的字段值显现为纯文本;而HyperLinkColumn则将之显现为一个超等链接。别的,开辟者能够经由过程写一个承继自DataGridColumn的自界说类来定制DataGrid列的款式。
只管DataGrid具有这么多的加强可用性的属性,却仍旧显得古板而不敷天真。这是由于,不管甚么样的属性,都必要对DataGrid所天生的表格举行相干的设置而失效。这无疑会使表格变得痴肥而得到天真性。比方,DataGridColumn的设置会对表格的每行的响应列失效。DataGrid的这类范围性拦阻了更有创意地显现数据。好比,你但愿每五笔记录被显现在一行,或基本不想要表格来显现数据,你将不能不保持利用DataGrid。
DataGrid的第二个缺点是它的功能。在三种数据控件中,DataGrid是绝对功能最差的。由DataGrid所天生的ViewState将会相称复杂,出格是在DataGrid含有较多的行时。固然,你也能够封闭ViewState功效,但价值是你将不克不及利用排序、分页和纪录编纂等功效。
为了丈量DataGrid的功能,我利用了微软的WebApplicationStressTool(WAST)。准确的测试前提设定和测试用代码将会在本文的开头给出。
WAST将会对WEB服务器收回对一个特定URL的哀求。每一个测试将会针对一个URL在一分钟以内接二连三地哀求。WAST将会一个代表功能的数值,代表WEB服务器将会在一秒钟内实行ASP.Net页面几次。
两个测试将显现一个仅仅显现数据的DataGrid。DataGrid将会显现Northwinds数据库中的Customers表的4个字段的内容(总计91笔记录)。DataGrid的AutoGenerateColumns属性将会被设为True。第一个测试将DataGrid置于一个Form中,第二个则不置于Form中。将控件置于Form中而不指定其EnableViewState为False,则控件将会一向利用ViewState来保持其形态。对ViewState的设定是为了有一个耗时的处置历程,来看一下它关于每秒种的页面哀求有甚么样的影响。测试了局见。
:对DataGrid的每秒哀求次数
鄙人面我们要会商并测试的DataList和Repeater中,我们会看到它们的功能将优于DataGrid。
[DataList控件]
如前所述,DataGrid利用表格来显现数据。你大概必要更进一步地把持数据的显现。比方,你想使数据在表格中显现,但不是每行只要一笔记录,而是多条。又大概,你其实不想利用表格来显现数据,而是只将它们显现在一系列<span>标签中。
DataList保持了DataGrid中列表显现数据的观点,而是利用事前界说好的模板(Template)来定制显现。经由过程利用模板,能够同时利用HTML标签或数据绑定。这里的数据绑定的情势为:<%#…%>,用来显现数据源中给定条目标数据纪录。以下的ItemTemplate将会显现数据源中CompanyName字段:
<asp:DataListrunat="server"id="myDataList">
<ItemTemplate&</p>SQLServer是基于服务器端的中型的数据库,可以适合大容量数据的应用,在功能上管理上也要比Access要强得多。在处理海量数据的效率,后台开发的灵活性,可扩展性等方面强大。 |
|