马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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以调剂该格子的头部的列尺寸和行尺寸。
[Ajax.AjaxMethod]
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;
}
[Ajax.AjaxMethod]
publicArrayListGetHeadArray()
{
...
//这个数组应当婚配编纂字段-column3=Decimal,column4=Email,column5=Number
string[]ValidateType={"","","Decimal","Email","Number"};
//赋值ColumnDisplayName={};假如不利用定制显现名
string[]ColumnDisplayName={};
...
}
最初,非常感激MichaelSchwarz,是他创立了搭建起JavaScript与.Net之间桥梁的ajax.net。来吧!老师们!我代表千千万万的asp.net/C#的初学者在这里呼唤着! |