`

为ASP.NET控件添加常用的JavaScript操作

阅读更多
1.为button控件添加确认功能

要想为服务器控件添加客户端的事件,需要用到Attributes属性。Attributes属性是所有的服务器控件都有的一个属性,它用来为最终生成的HTML添加自定义的一些标记。假设Web Form上有一个保存按钮btnSave,希望在用户点此按钮时提示用户是否确实要保存(比如一旦保存就无法恢复等),则应在Page_Load事件中添加如下代码:
1btnSave.Attributes.Add(“onclick”,“Javascript:return confirm(‘Are you sure tosave?’);”)
要注意的是‘return’,这是不可省的,否则即使用户点了取消,数据仍然会保存。

2.为Datagrid中的每一行添加Javascript事件

Datagrid中的子控件是没办法直接访问的,要实现上面的那种效果,我们需要用到Datagrid的OnItemDataBound事件。OnItemDataBound事件发生在Datagrid的每一行数据绑定到Datagrid之后(即一行激发一次)。首先在Datagrid的声明中添加OnItemDataBound属性,如下:

此处说明OnItemDataBound事件发生时调用ItemDataBound方法,在代码后置文件中添加此方法的定义: 
private void OnItemDataBound(object sender,System.Web.UI.WebControls.DataGridItemEventArgs e)
{
        
if(e.Item.ItemType != ListItemType.Header && e.Item.ItemType !=
ListItemType.Footer )
        
{
            LinkButton btnSave 
= (LinkButton)e.Item.Cells[2].Controls[0];
            
string strClientID = btnSave.ClientID;
            
//得到该控件的客户端ID,可供JavaScript调用
            btnSave.Attributes.Add("onclick","Javascript:return confirm('Are you sure to save?');");
        }

}

由于Datagrid的标题行和脚注行也会激发此事件,所以首先判断激发此事件的行不是标题行和脚注行。这里假设btnSave按钮位于Datagrid的第3列(第一列是0)。

3.在Javascript中触发服务器端控件事件

让我们再来考虑第一个实例,我们为保存按钮增加了确认功能,只有在用户确认后才会执行保存操作,用户不确认的话就不执行,如果我们想要用户按下“取消”时,执行另外的操作怎么办呢?这就要需要用JS来回调(PostBack)服务器端控件完成操作。

当前页面中有一个DropDownList控件ddlTest,Button按钮btnSave.当选择ddlTest时触发onchange事件,保存当前的选择值,在保存前会让操作者先确认,用户确认则保存,否则转向default.aspx页。

在Page_Load事件中添加如下代码: 
1string strCMD = Page.GetPostBackClientHyperlink( btnSave, "" );
2string script = @"Javascript:ConfirmUpdate(""EVAL_MESSAGE"");";
3script = script.Replace( "EVAL_MESSAGE" , strCMD );
4ddlTest.Attributes.Add("onchange",script);
 这段代码执行后生成的select控件将是这样: 
1select name="ddlTest" id="ddlTest" onchange="Javascript:ConfirmUpdate("javascript:__doPostBack('btnSave','')");" 〉
ConfirmUpdate函数如下
 1<SCRIPT language=javascript>
 2    function ConfirmUpdate(cmd){
 3    if(confirm("Are you sure to update?"))
 4   {
 5       eval(cmd);
 6    }
 7    else
 8    {
 9        window.location.href="default.aspx"
10    }
11   }
12</SCRIPT>这里利用了Javascript eval函数来调用一个字符串中包含的命令。需注意的是包含命令的字符串不能用单引号括起来,因为自动生成的脚本中包括单引号,所以这里用两个双引号表示字符串本身的双引号。  
分享到:
评论

相关推荐

    ASP.NET c# 日期控件

    ASP.NET c# 日期控件,很好用,测试通过 下载后解压放到站点文件夹下,引用时注意路径 前台: &lt;title&gt;&lt;/title&gt; &lt;script language="javascript" type="text/javascript" src="../My97DatePicker/WdatePicker.js"&gt; ...

    ASP.NET 控件的使用

    1.2 ASP.NET控件 10 1.2.1 ASP.NET控件概览 11 1.2.2 HTML控件 12 1.2.3 理解和处理控件事件 12 1.2.4 视图状态 17 1.3 ASP.NET页面 20 1.3.1 动态编译 20 1.3.2 控件树 23 1.3.3 使用代码隐藏页面 24 1.3.4 处理...

    asp.net控件动态添加技术结合javascript应用于英语听力网站设计的思路.pdf

    asp.net控件动态添加技术结合javascript应用于英语听力网站设计的思路.pdf

    ASP.NET基础控件-教程

    内容:  Asp.net页面内传参数方法  调用存储过程(两种方法比较) ... Asp.net中DataList控件添加删除  Asp.net获取请求的用户信息IP地址  获取世界IP地址库显所在城市信息  MySQL事务处理  SQL内部常用函数

    asp.net开发常用整理集合

    不断更新中 ... Asp.net中DataList控件添加删除  Asp.net获取请求的用户信息IP地址  获取世界IP地址库显所在城市信息  MySQL事务处理  SQL内部常用函数  为gridview“删除”列添加确认对话框

    庖丁解牛:纵向切入ASP.NET 3.5控件和组件开发技术

    8.1 asp.net服务端控件对客户端的支持 297 8.2 clientscriptmanager类功能详解 301 8.2.1 registerarraydeclaration方法 301 8.2.2 registerclientscriptblock方法 302 8.2.3 registerclientscriptinclude方法 ...

    My97DatePicker日期控件asp.net

    很好用的ASP.net日期控件。使用方法: 1,放到javascript目录 2,ASP.net页面添加引用 &lt;script language="javascript" type="text/javascript" src="../../../JavaScript/My97DatePicker/WdatePicker.js" defer=...

    ASP.NET.4揭秘

    1.2 asp.net控件11 1.2.1 asp.net控件概览11 1.2.2 html控件12 1.2.3 理解和处理控件事件13 1.2.4 视图状态18 1.3 asp.net页面22 1.3.1 动态编译23 1.3.2 控件树25 1.3.3 使用代码隐藏页面27 1.3.4 处理页面事件30 ...

    [ASP.NET.AJAX编程参考手册(涵盖ASP.NET.3.5及2.0)].(美)霍斯拉维.扫描版.pdf

    本书以AJAX为核心阐述对象,介绍了它对JavaScript所做的各种扩展,还介绍了在ASP.NET环境下创建客户端应用所需的一些核心控件。通过大量的实例,本书详述了AJAX的内部机制,并且紧跟时代潮流,重点描述了如何依靠...

    庖丁解牛纵向切入ASP.NET 3.5控件和组件开发技术.pdf

     本书主要介绍asp.net的控件开发,书中通过70多个例子讲解了asp.net控件开发技术的各个方面,而且剖析了很多控件中系统基类源代码,读者从这些系统源代码可以体会设计模式思想。如果扎实地掌握了asp.net控件的运行...

    ASP.NET AJAX

    导读:在本篇文章中,我们将通过编写JavaScript来使用客户端行为扩展UpdateProgress控件,客户端代码将使用ASP.NET AJAX Library中的PageRequestManager,在UpdateProgress控件中,将添加一个Button,来允许用户取消...

    asp.net知识库

    利用反射实现ASP.NET控件和数据实体之间的双向绑定,并且在客户端自动验证输入的内容是否合法 asp.net报表解决方法 SQLDMO类的使用 SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL...

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part1

    17.3 asp.net ajax对服务器控件支持的基类 612 17.3.1 ajax控件支持的基类 612 17.3.2 ajax控件应用示例 623 17.4 本章总结 636 附录a .net 3.5技术教程系列——collection/asp.net ajax/ silverlight/jquery .....

    庖丁解牛 纵向切入ASP.NET 3.5控件和组件开发 part2

    17.3 asp.net ajax对服务器控件支持的基类 612 17.3.1 ajax控件支持的基类 612 17.3.2 ajax控件应用示例 623 17.4 本章总结 636 附录a .net 3.5技术教程系列——collection/asp.net ajax/ silverlight/jquery .....

    扩展ASP.NET控件:可滚动的GridView

    扩展标准ASP.NET GridView控件以在网格中添加垂直滚动条

    asp.net教学讲义

    3.4 ASP.NET2.0新增控件 45 3.4.1 ImageMap控件 45 3.4.2 FileUpload控件 48 3.5 客户端处理 52 3.5.1 第一种方式示例: 52 3.5.2第二种方式:动态注册javascript指令块 53 3.6验证控件 54 3.6.1验证控件简介 54 ...

    asp.net专家疑难解答200问

    如何备份和恢复数据库 第9章 ASP.NET安全策略 第10章 常用功能及函数集 180.如何在ASP.NET中获得客户端IP地址 181.如何取得一定范围内的随机数 182.如何取得文件的扩展名示例一 182.如何...

    asp.net学习积累的代码段

    ASP.NET 程序中常用的三十三种代码.txt asp.net使用客户端验证.txt Asp.net中基于Forms验证的角色验证授权).txt asp.net中如何用c#实现弹出式的交互对话窗口.txt cookie登陆判断.txt CSharp基本书写规范.doc ...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    在ASP.NET里面,数据库还是这两个但是常用的语言多了一个C#,也是微软推荐的语言,为.NET平台定制的语言。这样ASP.NET就有四种组合:VB+ACCESS,VB+SQL,C#+ACCESS,C#+SQL,本教程会使用C#+ACCESS,兼顾四种来写,...

    ASP.NET常用代码

    ASP.NET常用代码 1. 打开新的窗口并传送参数: 传送参数: response.write("&lt;script&gt;window.open('*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"')&lt;/script&gt;") 接收参数: string a = Request....

Global site tag (gtag.js) - Google Analytics