ASP.NET教程之基于AJAX.NET手艺的DataGrid控件开辟
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。ajax|datagrid|datagrid控件|控件开辟 择要本文中的这个DataGrid是一个客户端控件,它是利用JavaScript和Ajax.net手艺构建的。1、简介
本文中要创立的这个DataGrid是一个客户端控件。它是利用JavaScript而且利用Ajax.net手艺构建的以完成与ASP.NET后端代码的通信;而在这个后端,我们利用ADO.NET存取数据库并利用Dataset更新数据库。
这个控件具有一个DataGrid应当具有的统统特性,而且具有在你创建毗连串和表名后不必要编写任何代码就可以够主动事情的一切功效。
这个Datagrid撑持以下功效:
1.页面。
2.排序。
3.Master-Detail(Detail部分还撑持页面和排序)。
4.基于给定的列前提能够定制行色彩。
5.编纂。
6.当没有页面撑持时,没有头部转动的转动条撑持。
7.撑持控件(图象,文本框,超等链接,下拉列表框,复选框)。
8.主动支解头部称号。
9.针对十进制、电子邮件和数字的主动校验文本框。
经由过程右击屏幕翻开一个弹出窗口(参考图1),能够完成这个DataGrid在分歧的形式之间的切换(展现一种形式下的视图):
.这个DataGrid具有分页,Master-Detail和编纂功效。
.这个DataGrid具有定制控件和含有静态头部的转动条
2、功能分析
这个DataGrid是应邀利用javascript创立的,而JavaScript并非一种编译言语,因而,与把xtml代码间接天生到页面的手艺比拟,这类体例速率明显慢些。假如DataGrid包括多于200纪录,那末最好仍是利用页面体例。不然,功能将会遭到很年夜影响。
我们利用CSS(层叠式样表)来设置这个控件的表面;因而,用户能够很简单地举行修正。
<P> 3、用法
这个用户控件包含五个部分:
1.用户控件.ascx文件
2.JavaScript文件
3.数据库存取文件
4.CSS文件
5.AJAX.NET静态链接库(.dll)
起首,要增加对ajax.dll的参考。
然后,把UserControl目次间接复制到你的工程而且把这个用户控件增加到你的ASP.Net页面(请参考工程源码):
<%@RegisterTagPrefix="WebDataGridDemo"TagName="WebDataGrid"Src="UserControl/WebDataGridUserControl.ascx"%>
<WEBDATAGRIDDEMO:WEBDATAGRIDid="wdg1"runat="server"></WEBDATAGRIDDEMO:WEBDATAGRID>
在这个Web.config文件中,安装毗连字符串。接上去,增加对Ajax.netdll的参考:
<appSettings>
<addkey="ConnectionString"value="DataSource=(local);InitialCatalog=Northwind;UserId=sa;Password=xxx;"/>
</appSettings>
<httpHandlers>
<addverb="POST,GET"path="
type="Ajax.PageHandlerFactory,Ajax"/>
</httpHandlers>
在这个DynamicDataGrid.js文件中,年夜多半参数具有默许值,你能够经由过程利用该控件的Web表单来修正这些参数。
privatevoidPage_Load(objectsender,System.EventArgse)
{
if(!Page.IsPostBack)
{
WebDataGridUserControl.MainTableName="suppliers";
WebDataGridUserControl.DetailTableName="products";
//这些可选的值将会掩盖默许的属性
WebDataGridUserControl.Height=300;
WebDataGridUserControl.Width=780;
WebDataGridUserControl.Editable=1;
WebDataGridUserControl.PageSize=4;
}
}
4、设置
别的,你还能够修正WebDataGridUserControl.ascx.cs文件中的一些参数。
假如你不利用页面形式,那末你大概必要改动数组ResetIfNoEditable和columnWidth以调剂该格子的头部的列尺寸和行尺寸。
publicArrayListInitializeInfo()
{
...
//intpageable=1;masterDetail=1;editable=1;pageSize=10;height=300
string[]FunctionProperty={"1","1",gEdit,gPageSize,gridHeight,gridWidth};
//={}-没有可用控件,0-标签,1-图象,2-超等链接,3-文本框,4-复选框,5-下拉列表框
string[]ColumnControlType={"0","2","3","3","0","3","4"};
//显现哪些列(3,4,5,7)是可编纂的
string[]ColumnEditable={"0","0","1","1","1","0","1"};
//以下属性仅仅用于非页面撑持情形下
//以下一句用于把第3,4,5列编纂按钮的尺寸从头设置为10,10,10
string[]ResetIfNoEditable={"0","0","10","10","10","0"};
string[]CustomizedHeadZize={"68","140","120","120","120","0"};
//当没有页面撑持设置时,必要列宽度;你应当把一列设置为"0"
string[]columnWidth={"68","140","120","120","120","0"};
...
returnal;
}
publicArrayListGetHeadArray()
{
...
//这个数组应当婚配编纂字段-column3=Decimal,column4=Email,column5=Number
string[]ValidateType={"","","Decimal","Email","Number"};
//赋值ColumnDisplayName={};假如不利用定制显现名
string[]ColumnDisplayName={};
...
}
最初,非常感激MichaelSchwarz,是他创立了搭建起JavaScript与.Net之间桥梁的ajax.net。来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着! Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。 asp.net空间的支持有:ASP.NET1.1/虚拟目录/MicrosoftFrontPage2000扩展/CDONTS,同时他的网站上也提供了Asp.net的使用详解和程序源代码,相信对使用ASP.NET编程的程序员来说会非常有用哦! ASP.net1.1和2.0在程序上的语法也有很大不同,现在2.0属于新出来的,不知道半年后会不会有3.0(说笑一下)。Windows2003系统自动支持ASP和ASP.net环境,不用安装任何程序。Asp.net属于编译语言。ASP的最大不同(ASP属于解释语言)。 ASP.net的速度是ASP不能比拟的。ASP.net是编译语言,所以,当第一次加载的时候,它会把所有的程序进行编译(其中包括worker进程,还有对语法进行编译,形成一个程序集),当程序编译后,执行速度几乎为0。 是指转换后的Servlet程序代码的行数。这给调试代码带来一定困难。所以,在排除错误时,可以采取分段排除的方法(在可能出错的代码前后输出一些字符串,用字符串是否被输出来确定代码段从哪里开始出错)。 ASP在执行的时候,是由IIS调用程序引擎,解释执行嵌在HTML中的ASP代码,最终将结果和原来的HTML一同送往客户端。 主流网站开发语言之CGI:CGI就是公共网关接口(CommonGatewayInterface)的缩写。它是最早被用来建立动态网站的后台技术。这种技术可以使用各种语言来编写后台程序,例如C,C++,Java,Pascal等。 关于ASP.NET功能上,ASP.NET比微软以前的ASP(96年出现)有更强大的library,更好的稳定性。ASP.NET可以使用.NETFramework中所有组件(也就是说.NET能实现的,ASP.NET一样能实现)。
页:
[1]