当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  关于ASP.NET调用JavaScript的实现 1

 关于ASP.NET调用JavaScript的实现 1

点击次数:18 次 发布日期:2008-11-26 11:32:24 作者:源代码网
源代码网推荐      本文结合示例讲述了在ASP.net应用程序中如何利用客户端的javascript脚本提高程序的执行效率并实现更多的功能。
源代码网推荐  
源代码网推荐  一、ASP.Net与Javascript
源代码网推荐  
源代码网推荐  .Net是微软公司下一代的战略核心,ASP.Net是.Net战略在Web开发方面的具体实现。它继承了ASP的简单性和易用性,同时克服了ASP程序结构化较差,难于阅读和理解的缺点。特别是服务器端控件和事件驱动模式的引入,使得Web应用程序的开发更接近于过去桌面程序的开发。
源代码网推荐  
源代码网推荐  在各种各样介绍ASP.Net的文章和书籍中,都把重点放在了服务器控件和.Net Framework SDK上,因为这是ASP.Net中最新和最具革命性的改进;与此相反,在过去的Web开发中占据重要地位的客户端脚本Javascript(也包括VBScript)则鲜有提及,似乎有了服务器端程序,已经不需要客户端脚本了。但是,服务器端的程序毕竟需要一次浏览器与Web服务器的交互,对于ASP.Net来说,就是一次页面的提交,需要来回传送大量的数据,而很多工作,比如输入验证或者删除确认等,完全可以用Javascript来实现。因此,探讨在ASP.Net中如何使用Javascript仍然很有必要。
源代码网推荐  
源代码网推荐  
源代码网推荐  二、Javascript的应用示例
源代码网推荐  
源代码网推荐  1.为页面上的某个服务器控件添加Javascript事件
源代码网推荐  
源代码网推荐  服务器控件最终生成的仍然是普通的HTML,比如<asp:textbox>生成input text。表单中的每个HTML控件都有它自己的Javascript事件,比如Textbox有onchange事件,Button有onclick事件,Listbox有onchange事件等。要想为服务器控件添加客户端的事件,需要用到Attributes属性。Attributes属性是所有的服务器控件都有的一个属性,它用来为最终生成的HTML添加自定义的一些标记。假设Web Form上有一个保存按钮btnSave,希望在用户点此按钮时提示用户是否确实要保存(比如一旦保存就无法恢复等),则应在Page_Load事件中添加如下代码:
源代码网推荐  
源代码网推荐  if not page.isPostBack() then
源代码网推荐  
源代码网推荐  btnSave.Attributes.Add(“onclick”,”Javascript:return confirm(‘Are you sure to save?’);”)
源代码网推荐  
源代码网推荐  end if
源代码网推荐  
源代码网推荐  要注意的是‘return’,这是不可省的,否则即使用户点了取消,数据仍然会保存。
源代码网推荐  
源代码网推荐  
源代码网推荐  2.为Datagrid中的每一行添加Javascript事件
源代码网推荐  
源代码网推荐  假设Datagrid的每一行有一个删除按钮,希望在用户点此按钮时提示用户是否确实要删除此条记录,以防用户点错了行,或仅仅是无意中点了删除按钮。
源代码网推荐  
源代码网推荐  无论这个删除按钮是什么名字,都不能象上个例子那样直接引用,因为每一行都有这样一个按钮,它们是Datagrid中的子控件。在这种情况下,需要用到Datagrid的OnItemDataBound事件。OnItemDataBound事件发生在Datagrid的每一行数据绑定到Datagrid之后(即一行激发一次)。首先在Datagrid的声明中添加如下代码:
源代码网推荐  
源代码网推荐  <asp:datagrid id="grd1" runat="server" OnItemDataBound = "ItemDataBound" >
源代码网推荐  
源代码网推荐  …Columns definition here
源代码网推荐  
源代码网推荐  </asp:datagrid> 此处说明OnItemDataBound事件发生时调用ItemDataBound方法,在代码后置文件中添加此方法的定义:
源代码网推荐  
源代码网推荐  
源代码网推荐  Sub ItemDataBound(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
源代码网推荐  
源代码网推荐  If e.Item.ItemType <> ListItemType.Header And e.Item.ItemType <> ListItemType.Footer Then
源代码网推荐  
源代码网推荐  Dim oDeleteButton As LinkButton = e.Item.Cells(5).Controls(0)
源代码网推荐  
源代码网推荐  oDeleteButton.Attributes("onclick") = "javascript:return Confirm ("Are you sure you want to delete" & DataBinder.Eval(e.Item.DataItem, "m_sName") & "?")"
源代码网推荐  
源代码网推荐  End If
源代码网推荐  
源代码网推荐  End Sub
源代码网推荐  
源代码网推荐  由于Datagrid的标题行和脚注行也会激发此事件,所以首先判断激发此事件的行不是标题行和脚注行。这里假设Delete按钮位于Datagrid的第6列(第一列是0),且Datagrid的Datasource中包含名为”m_sName”的列
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐  
源代码网推荐    做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华