仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 467|回复: 9
打印 上一主题 下一主题

[学习教程] ASP网页编程之Cutting Edge:利用客户端举动扩大ASP.N...

[复制链接]
海妖 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:58:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时.asp.net|datagrid|客户端|控件CuttingEdge:利用客户端举动扩大ASP.NETDataGrid控件

(可拖动列和客户端排序)

英文原文:ExtendtheASP.NETDataGridwithClient-sideBehaviors
DinoEsposito
翻译:MasterLRC
源码:CuttingEdge0401.exe好像比萨饼厨师的擀面杖,DataGrid控件,关于一个纯熟的ASP.NET开辟者来讲长短常基础并且有效的工具(译者:老外的比方,感到猎奇怪)。固然,在ASP.NET1.x中,DataGrid已长短常壮大并且用处普遍的控件和服务器工具。可是,我们仍然能够经由过程给它加一点客户端剧本,来使它的功效变得加倍壮大。比来,我看到了DaveMassy在几年前为MSDNOnline的“DHTMLDude”栏目写的一些出色内容。Dave叙述了一些使HTML的<Table>元素功效壮大的制造性的办法,个中之一就是怎样对table的内容举行排序和在Table中拖动列。
他还演示了<Table>元素的的DHTMLBehavior的用法。我意想到,当DataGrid控件在扫瞄器上出现为HTML时,它完整就是一个<Table>元素;固然它大概包括了很多款式属性,但它的基础布局仍然是一个典范的HTMLTable。这使我意想到我能够创立带客户端排序和可拖动列功效的DataGrid控件。这就是我们这个月的栏目内容,你能够下载源代码来考证我所说并不是虚言。
DHTMLBehavior疾速指南
DHTMLBehavior在我们的扩大的DataGrid控件中饰演十分主要的脚色。一会儿你就会注重到:我并没有利用Dave在他的原始form中利用的办法,为了使behavior在ASP.NET控件能够事情,我做了一点变动。固然利用这个修正后的组件不必要任何Javascript妙技,可是懂得一下DHTMLBehavior的手艺可使你更好的了解服务器端和客户端协同事情的机制。
DHTMLBehavior就是使用CSS(cascadingstylesheet层叠款式表)的behavior款式,绑定到一个HTML标志的剧本组件关于那些不撑持CSS或不辨认behavior款式的老扫瞄器中,将主动S略未辨认的款式。要想深切懂得DHTML请拜见:ScriptingEvolvestoaMorePowerfulTechnology:HTMLBehaviorsinDepth一个DHTMLbehavior就是一个JavaScrip函数集,这个函数会合到场了一些由特别句法界说的大众成员。一样平常来说,这些大众成员是一些属性和事务,偶然也多是办法;Behavior事情在现有的HTML元素之上,同意你掩盖和扩大HTML元素的behavior。办法是:behavior把它本人界说的代码联系关系到DHTML的事务上。比方,供应拖动列功效的behavior操纵onmousedown和onmouseup事务。并且,一切关头的DHTMLbehavior都撑持oncontentready事务,当HTMLsubtree(在指定元素内的一切HTML)被剖析完成时将引发这一事务。当oncontentreadey事务引发时,是初始化behavior的好机会。
实在,behavior的中心就是向MicrosoftInternetExplorer(4.0或更高版本)扫瞄器表露一系列接口的COM工具。终极就是你能够把它写成C++元组件或HTML组件(HTC)文本文件HTC文件能够布署在承载使用它们的文件(HTML,ASP,ASP.NET)的服务器上,不必要在客户端安装。
上面代码暗示怎样经由过程利用“dragdrop.htc”behavior增加一个具有可拖动列功效的<table&gl;标签:
<TABLEstyle="behavior:url(dragdrop.htc);">这里“dragdrop.htc”文件必需和利用它的文件布署于统一目次。
可拖动的DataGrid
在浏览了DaveMassy的文章以后,我下载了dragdrop.htc示例组件,然后我实验在一个实行页面中把它绑定到DataGrid组件。以下:
theGrid.Style["behavior"]="url(dragdrop.htc)";奇异的是,组件没起感化。思索到DataGrid在客户端完整是一个Table这一不争现实,我决意对照一下Dave的示例Table的代码和由ASP.NETDataGrid天生的HTML代码有甚么分歧。我注重到:在ASP.NET1.x中的DataGrid天生的HTMLTable不包括THEAD和TBODY元素。而这两个元素恰好是示例behavior起感化的关头要素。固然拖动和下压列其实不间接必要THEAD和TBODY两个元素,可是这两个元素十分有助于定位table的表头和表体。
有两个举措办理这一成绩:重写一个不利用THEAD和TBODY的behavior;本人写一个天生带THEAD和TBODY标签的Table的DataGrid控件。关于一个象我如许的ASP.NET开辟者来讲,我信任开辟一个自界说控件比编写一个behavior要简单。由于最少我们能够举行无效的举行代码根踪调试。因而,我新建一个VisualStudio.NET办理计划,增加一个ASP.NET使用程序工程和一个Web控件库工程。就有了上面的新DataGrid控件的雏形:
  1. [ToolboxData("<{0}:DataGridrunat="server"/>")]publicclassDataGrid:System.Web.UI.WebControls.DataGrid{publicDataGrid():base(){EnableColumnDrag=true;DragColor=Color.Empty;HitColor=Color.Empty;}...}
复制代码
机关器初始化三个大众自界说属性:EnableColumnDrag、DragColor和HitColor。EnableColumnDrag是一个暗示是不是能够拖动列的布尔属性。假如此属性设置成False,自界说DataGrid控件将不会增加拖动列behavior。别的两个属性分离暗示被拖动的列的背景致和将下压列的色彩。
注重这两个色彩属性不会影响DataGrid服务器控件的任何逻辑。他们是那种仅输入HTML值(这个值只对客户端behavior有效)的服务器端属性。这两个属性的值被出现为由grid的天生的<table>标签的自界说属性。DataGrid的标志代码是在控件的Render办法中创立的,以下:
[code]protectedoverridevoidRender(HtmlTextWriteroutput){//SetsattributesfortheDragDropbehaviorif(EnableColumnDrag){if(DragColor!=Color.Empty)Attributes["DragColor"]=DragColor.Name.ToLower();if(HitColor!=Color.Empty)Attributes["HitColor"]=HitColor.Name.ToLower();//CapturethedefaultoutputoftheDataGridStringWriterwriter=newStringWriter();HtmlTextWriterbuffer=newHtmlTextWriter(writer);base.Render(buffer);stringgridMarkup=writer.ToString();//Parsethemarkuptoinsertmissingtags//Findthefirstoccurrenceof>andinsert
intinsertPoint;
insertPoint=gridMarkup.IndexOf(">")+1;//lenof>
gridMarkup=gridMarkup.Insert(insertPoint,"");
insertPoint=gridMarkup.IndexOf("")+5;//lenof
gridMarkup=gridMarkup.Insert(</p>asp可以使用微软的activeX使得网页功能无比强大,不过安全性也较差,而且是基于的windows服务器,所以性能稳定性也一般
老尸 该用户已被删除
沙发
发表于 2015-1-20 06:52:29 | 只看该作者
你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。
灵魂腐蚀 该用户已被删除
板凳
发表于 2015-1-25 16:08:07 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
再见西城 该用户已被删除
地板
发表于 2015-1-28 20:37:20 | 只看该作者
交流是必要的,不管是生活还是学习我们都要试着去交流,通过交流我们可以学到很多我们自己本身所没有的知识,可以分享别人的经验甚至经历。
兰色精灵 该用户已被删除
5#
发表于 2015-2-5 21:24:39 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
柔情似水 该用户已被删除
6#
发表于 2015-2-13 16:40:08 | 只看该作者
我可以结合自己的经验大致给你说一说,希望对你有所帮助,少走些弯路。
蒙在股里 该用户已被删除
7#
发表于 2015-3-4 00:07:22 | 只看该作者
弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。
活着的死人 该用户已被删除
8#
发表于 2015-3-11 14:18:49 | 只看该作者
那么,ASP.Net有哪些改进呢?
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-18 18:45:59 | 只看该作者
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
admin 该用户已被删除
10#
发表于 2015-3-26 09:58:05 | 只看该作者
它可通过内置的组件实现更强大的功能,如使用A-DO可以轻松地访问数据库。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 14:24

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表