仓酷云

标题: ASP网页编程之ASP.NET拾萃――服务器端控件篇(一) [打印本页]

作者: 飘飘悠悠    时间: 2015-1-16 22:40
标题: ASP网页编程之ASP.NET拾萃――服务器端控件篇(一)
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;技能一:在客户真个javascript剧本中猎取服务器端控件的值
之前,当我们必要在剧本里会见页面内一个工具的时分,一样平常都是经由过程工具的id或name。就像如许――

//...
functiongetText()
{
returndocument.form1.Text1.value;//Text1就是工具的id
}
//...

如今,ASP.NET让我们愈来愈习气利用TextBox作为用户输出的路子。假如我们想在客户端剧本里会见一个TextBox,本来的做法就行欠亨了――

//...
functiongetText()
{
returndocument.form1.Text1.value;//Text1仍是工具的id?
}
//...

扫瞄页面时,会有一个剧本毛病――“Text1工具不存在”。缘故原由就在于,Text1作为服务器端控件TextBox,在被发送到客户端之前,先由.NETFramework举行转换,而它的id明显也是转换的一部分。假如你在客户端检察页面的源代码,你能够发明本来的Text1已不存在,取而代之的是一个一般的INPUT――

这就是转换的了局,id不再是计划时所指定的id。假如我们要在客户端会见这个文本输出框,也必需改动会见的id。怎样改动?间接将
document.form1.Text1
改成
document.form1.item("Test_Text1")//保险起见,利用item由id或name失掉控件
大概
document.getElementByID("Test_Text1")//保险起见,利用getElementByID由id或name失掉控件
能够吗?固然能够!只需你的控件id流动是"Text1"。
可是,只要这个前提还不敷。"Test"又是甚么?它也应当被思索在内(幸亏form的id不会改动,不然要体贴的内容又会多一个)。
你也许已看出,Test就是这个Web页面的名字。对吗?――不完整对:P
切实地说,控件转换后id中的"Test"是其地点的Web窗体工具的ClientID。一切的ASP.NET工具都在服务器端有一个实例(假如你面向工具的基本不敷,倡议也补完一次吧),而这个"Test",就是这个页面实例工具的ClientID。而ClientID,则是每一个Web窗体页的一个属性,它指了然这个Web窗体在客户真个标识。
为何要这么庞大?事理很复杂,我们其实不能在客户端剧本里断定页面的ClientID和控件的ID。
那应当如何做呢?
“在服务器端代码里天生客户端javascript。”――仿佛十分庞大,实在其实不坚苦,只需在服务器端Page_Load事务里加上(在IsPostBack判别以外)――
RegisterStartupScript("start",
"

");
RegisterStartupScript是Web窗体(System.Web.UI.Page类)的一个办法,感化是在天生的页面里注册客户端剧本。
在这里,我们增加了一个getText()函数,感化和之前的getText()一样,所分歧的在于,它所会见的控件id并不是剧本内指定,而是在服务器端依据页面的ClientID(this.ClientID,this就是页面本人)和Text1控件的ID(this.Text1.ID)静态天生的。
编译以后从头扫瞄,我们会在新的页面源代码里找到这个由服务器端代码天生的javascript函数。此时,在页面的其他中央挪用getText()函数就将准确失掉Text1中的内容了。


大家可以自己去看一看.可以说看得想呕吐.以前有次下了个动网来看.里面连基本内置函数的保护措施(函数没防御性)都没有.难怪经常补这个补那个了.可能现在.NET版会好点吧
作者: 山那边是海    时间: 2015-1-19 21:12
代码的可重用性差:由于是面向结构的编程方式,并且混合html,所以可能页面原型修改一点,整个程序都需要修改,更别提代码重用了。
作者: 飘飘悠悠    时间: 2015-1-27 23:56
Request:从字面上讲就是“请求”,因此这个是处理客户端提交的东东的,例如Resuest.Form,Request.QueryString,或者干脆Request("变量名")
作者: 分手快乐    时间: 2015-2-5 11:51
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
作者: 小魔女    时间: 2015-2-11 16:10
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
作者: 金色的骷髅    时间: 2015-3-2 15:47
Application:这个存储服务端的数据,如果不清除,会直到web应用程序结束才清除(例如重启站点)
作者: 小妖女    时间: 2015-3-11 04:31
接下来就不能纸上谈兵了,最好的方法其实是实践。实践,只能算是让你掌握语言特性用的。而提倡做实际的Project也不是太好,因为你还没有熟练的能力去综合各种技术,这样只能使你自己越来越迷糊。
作者: 老尸    时间: 2015-3-17 20:51
我想问如何掌握学习节奏(先学什么再学什么)最好详细点?
作者: admin    时间: 2015-3-25 02:00
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2