ASP.NET编程:关于ASP.NET挪用JavaScript的完成
竟发现没有太大的帮助。总觉得要用起来,感觉到不了位。因为公司机器的原因,一直没有安装vs.net(也从来没有用过)。以前做asp的时候一直用DW(感觉其代码联想功能不错),可现在到了asp.net却不习惯了。asp.net|javascript本文分离示例报告了在ASP.net使用程序中怎样使用客户真个javascript剧本进步程序的实行效力并完成更多的功效。1、ASP.Net与Javascript
.Net是微软公司下一代的计谋中心,ASP.Net是.Net计谋在Web开辟方面的详细完成。它承继了ASP的复杂性和易用性,同时克制了ASP程序布局化较差,难于浏览和了解的弱点。出格是服务器端控件和事务驱动形式的引进,使得Web使用程序的开辟更靠近于已往桌面程序的开辟。
在林林总总先容ASP.Net的文章和书本中,都把重点放在了服务器控件和.NetFrameworkSDK上,由于这是ASP.Net中最新和最具反动性的改善;与此相反,在已往的Web开辟中占有主要位置的客户端剧本Javascript(也包含VBScript)则鲜有说起,仿佛有了服务器端程序,已不必要客户端剧本了。可是,服务器真个程序究竟必要一次扫瞄器与Web服务器的交互,关于ASP.Net来讲,就是一次页面的提交,必要往返传送大批的数据,而良多事情,好比输出考证大概删除确认等,完整能够用Javascript来完成。因而,切磋在ASP.Net中怎样利用Javascript仍旧很有需要。
2、Javascript的使用示例
1.为页面上的某个服务器控件增加Javascript事务
服务器控件终极天生的仍旧是一般的HTML,好比<asp:textbox>天生inputtext。表单中的每一个HTML控件都有它本人的Javascript事务,好比Textbox有onchange事务,Button有onclick事务,Listbox有onchange事务等。要想为服务器控件增加客户真个事务,必要用到Attributes属性。Attributes属性是一切的服务器控件都有的一个属性,它用来为终极天生的HTML增加自界说的一些标志。假定WebForm上有一个保留按钮btnSave,但愿在用户点此按钮时提醒用户是不是的确要保留(好比一旦保留就没法恢复等),则应在Page_Load事务中增加以下代码:
ifnotpage.isPostBack()then
btnSave.Attributes.Add(“onclick”,”Javascript:returnconfirm(‘Areyousuretosave?’);”)
endif
要注重的是‘return’,这是不成省的,不然即便用户点了作废,数据仍旧会保留。
2.为Datagrid中的每行增加Javascript事务
假定Datagrid的每行有一个删除按钮,但愿在用户点此按钮时提醒用户是不是的确要删除此笔记录,以防用户点错了行,或仅仅是偶然中点了删除按钮。
不管这个删除按钮是甚么名字,都不克不及象上个例子那样间接援用,由于每行都有如许一个按钮,它们是Datagrid中的子控件。在这类情形下,必要用到Datagrid的OnItemDataBound事务。OnItemDataBound事务产生在Datagrid的每行数据绑定到Datagrid以后(即一行引发一次)。起首在Datagrid的声明中增加以下代码:
<asp:datagridid="grd1"runat="server"OnItemDataBound="ItemDataBound">
…Columnsdefinitionhere
</asp:datagrid>此处申明OnItemDataBound事务产生时挪用ItemDataBound办法,在代码后置文件中增加此办法的界说:
SubItemDataBound(ByValsenderAsObject,ByValeAsDataGridItemEventArgs)
Ife.Item.ItemTypeListItemType.HeaderAnde.Item.ItemTypeListItemType.FooterThen
DimoDeleteButtonAsLinkButton=e.Item.Cells(5).Controls(0)
oDeleteButton.Attributes("onclick")="javascript:returnConfirm(Areyousureyouwanttodelete"&DataBinder.Eval(e.Item.DataItem,"m_sName")&"?)"
EndIf
EndSub
因为Datagrid的题目行和脚注行也会引发此事务,以是起首判别引发此事务的行不是题目行和脚注行。这里假定Delete按钮位于Datagrid的第6列(第一列是0),且Datagrid的Datasource中包括名为”m_sName”的列
3.援用编纂形态下的Datagrid中的控件
Datagrid的内置编纂功效使妥当纪录的字段较少时的一种编纂办法。用户不用进进一个独自的页面编纂纪录,而是间接点编纂按钮就能够使以后行进进编纂形式。而另外一方面,有一些Javascript程序必要援用控件的称号。好比,良多程序在必要用户输出日期时都供应一个日期控件以包管日期格局的正当性,当用户点控件图标时弹出一个新窗供词用户选择日期。此时必要把显现日期的文本框的ID供应给新窗口,以便利用户选择日期后值能够回填到文本框中。
假如是一般的服务器文本框控件,它的ID与天生的HTML输出框的ID是不异的;可是在Datagrid的编纂形态下,两个ID其实不不异(其事理与上例不异),这就必要用到控件的ClientID属性。
ProtectedSubItemEdit(ByValsourceAsObject,ByValeAsSystem.Web.UI.WebControls.DataGridCommandEventArgs)
DimsDateCtrlasstring
sDateCtrl=grd1.Items(e.Item.ItemIndex).Cells(2).FindControl("txtDate").ClientID
EndSub
这里假定ItemEdit办法是Dategrid的OnItemEdit事务处置程序,同时在Datagrid的第三列包括一个名为txtDate的服务器文本框控件。
4.援用ASP.Net主动天生的Javascript程序
所谓的“服务器端控件”是针对开辟职员的,在天生的HTML源程序中并没有服务器和客户端之分,都是尺度的HTML,DHTML和Javascript。它之以是能呼应用户的输出是由于每一个控件的事务处置程序终极都天生了一段剧本,此剧本从头提交页面使得WebServer无机会再次呼应并作出处置。一般情形下我们不用晓得此剧本是甚么也不用间接挪用此剧本,但在有些情形下,得当地挪用此剧本能够简化很多事情。请看上面两个例子。
●点Datagrid的任一名置以选中一行
Datagrid供应了一种内置的选择按钮,当点此按钮时选中以后行(能够设置SelectedItemStyle属性以使以后行有分歧的表面)。但用户大概更习气于点恣意一个地位都能选中一行,假如完整本人完成这个功效相称啰嗦。一个好的思绪是增加一个选择按钮,但使此列埋没,当点任一行时挪用此按钮发生的Javascript剧本。
SubItem_Bound(ByValsenderAsObject,ByValeAsDataGridItemEventArgs)
DimitemTypeAsListItemType
itemType=CType(e.Item.ItemType,ListItemType)
If(itemTypeListItemType.Header)And_
(itemTypeListItemType.Footer)And_
(itemTypeListItemType.Separator)Then
DimoSelectAsLinkButton=CType(e.Item.Cells(5).Controls(0),LinkButton)
e.Item.Attributes("onclick")=Page.GetPostBackClientHyperlink(oSelect,"")
EndSub
这里假定选择按钮位于第6列。e.Item代表了一行,从天生的HTML上看就是在每一个<tr>里增添了一个onclick事务。Page.GetPostBackClientHyperLink办法前往页面中LinkButton控件发生的客户端剧本,个中第一个参数是Linkbutton控件,第二个参数是传送给此控件的参数,一般为空。假如不是LinkButton控件,有一个相似的函数GetPostBackClientEvent,读者能够参考MSDN。
●服务器发生的剧本与手工增加的剧本抵触
服务器控件的服务器事务一样平常对应到客户端控件的响应事务,如Dropdownlist的SelectedIndexChanged事务对应HTML<Select>的onchange事务。假如你要手工增添一个onchange事务,则会在客户端发生两个onchange,扫瞄器就会疏忽失落一个。好比用户但愿每当改动了Dropdownlist中的选项就保留到数据库(固然不是很罕见,但的确有这类必要),但同时还但愿提示用户是不是的确要做保留。明显,保留的代码应当放在SelectedIndexChanged事务中,而提示的事情应当手工加一段onchange事务。了局就是两个onchange只能实行一个。准确的办法应当是增加一个不成见的保留按钮,在手工增添的onchange事务中挪用此按钮天生的程序。
Page_Load办法以下:
DimsCmdasstring
sCmd=Page.GetPostBackClientHyperlink(btnUpdate,"")
Ifnotpage.isPostbackthen
Dropdownlist1.Attributes.add("onchange","ConfirmUpdate("""&sCmd&""")")
Endif
ConfirmUpdate函数以下
<Scriptlanguage=”javascript”>
functionConfirmUpdate(cmd){
ifconfirm(“Areyousuretoupdate?”)
eval(cmd);
}
</Script>
这里使用了Javascripteval函数来挪用一个字符串中包括的命令。需注重的是包括命令的字符串不克不及用单引号括起来,由于主动天生的剧本中包含单引号,以是这里用两个双引号暗示字符串自己的双引号。
3、停止语
以上复杂会商了在ASP.Net中拔出Javascript的几种情形。公道地在服务器程序中拔出客户真个Javascript剧本,能够进步程序的运转效力并供应更友爱的用户界面。
数据库有很多应用领域,但是如果你单单学数据库的话基本上做数据库管理员比较合适而已,跟领域结合的你还得再学习那些领域知识。(其实数据挖掘我真是不懂,本来这学期开了一门课了。 那么,ASP.Net有哪些改进呢? 主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。 那么,ASP.Net有哪些改进呢? 提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。 PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。 使用普通的文本编辑器编写,如记事本就可以完成。由脚本在服务器上而不是客户端运行,ASP所使用的脚本语言都在服务端上运行,用户端的浏览器不需要提供任何别的支持,这样大提高了用户与服务器之间的交互的速度。 由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。 但是java靠开源打出的一片天地,特别是在微软的垄断下能打开今天的局面还是有它的生命力的。
页:
[1]