为ASP.NET控件添加常用的JavaScript操作
1.为button控件添加确认功能
要想为服务器控件添加客户端的事件,需要用到Attributes属性。Attributes属性是所有的服务器控件都有的一个属性,它用来为最终生成的HTML添加自定义的一些标记。假设Web Form上有一个保存按钮btnSave,希望在用户点此按钮时提示用户是否确实要保存(比如一旦保存就无法恢复等),则应在Page_Load事件中添加如下代码:
要注意的是‘return’,这是不可省的,否则即使用户点了取消,数据仍然会保存。
2.为Datagrid中的每一行添加Javascript事件
Datagrid中的子控件是没办法直接访问的,要实现上面的那种效果,我们需要用到Datagrid的OnItemDataBound事件。OnItemDataBound事件发生在Datagrid的每一行数据绑定到Datagrid之后(即一行激发一次)。首先在Datagrid的声明中添加OnItemDataBound属性,如下:
此处说明OnItemDataBound事件发生时调用ItemDataBound方法,在代码后置文件中添加此方法的定义:
{
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事件中添加如下代码:
2string script = @"Javascript:ConfirmUpdate(""EVAL_MESSAGE"");";
3script = script.Replace( "EVAL_MESSAGE" , strCMD );
4ddlTest.Attributes.Add("onchange",script);
这段代码执行后生成的select控件将是这样:
ConfirmUpdate函数如下
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控件添加常用的JavaScript操作相关推荐
- ASP.NET 控件添加与不添加runat=server的作用及区别
原文转载于:https://blog.csdn.net/being_towards_death/article/details/81117340?utm_source=blogxgwz0 1.runa ...
- asp.net控件开发基础系列
本系列文章示例源码下载.各位如遇问题,请多查msdn,多利用网络.本人可能没时间一一回复,谢谢你们的支持,希望看到此文的人都能学好控件开发 http://www.cnblogs.com/Clingin ...
- 在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 后篇
第三章 为控件添加事件 后篇 前一篇文章只是简单的说了下事件,但是大家应该方法,在ASP.NET自定义控件中只是简单那么定义事件是行不 通.如果大家开发的是WinForm中的事件,之前的定义可能没有什 ...
- ASP.NET自定义控件组件开发 第三章 为控件添加事件 前篇
第三章 为控件添加事件 好了,我们之前以前开发一个控件.而且也添加了属性,开发也很规范,但是那个控件还差最后一点:添加事件. 系列文章链接: ASP.NET自定义控件组件开发 第一章 待续 ASP.N ...
- 金蝶EAS DEP脚本(5)给常用控件添加值改变事件
给常用控件添加事件 一.F7 给F7添加值改变事件 //F7控件增加值改变监听 pluginCtx.getKDBizPromptBox("prmtCompany").addData ...
- Asp.net控件开发学习笔记(三)-控件开发基础
封装 在asp.net中,控件被分为两类.用户控件和自定义服务器控件.前者就是我们经常用来将一些可复用的内容封装成的.ascx文件.这里主要研究后者. 创建自定义服务器控件 创建自 ...
- 使用 ASP+ DataGrid 控件来创建主视图/详细资料视图
Nikhil Kothari Microsoft Corporation 2000年8月 简介 Microsoft® Visual Studio.NET 的下一发行版包括 DataGrid Web 控 ...
- 【转】Asp.net控件开发学习笔记整理篇 - WebControl基类
最近一直在做MVC项目,对于WEBFORM 好像快忘记了.周末无聊,顺带看看他人的笔记.再次温习下. 复习大纲: 导航.页面生命周期及其它导论 一.服务器控件生命周期 二.控件开发基础 三.Asp.n ...
最新文章
- 2021年大数据Flink(十五):流批一体API Connectors ​​​​​​​Kafka
- switch case 支持的 6 种数据类型!
- 敏捷开发-Scrum与精益相得益彰
- 使用Silverlight for Embedded开发绚丽的界面(4)
- java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除
- 项目经理原则(转载)
- SAP FI新手常用代码
- Mac os下安装brew
- sql server代码创建数据库详细过程
- typedef struct LNode *p和typedef struct LNode笔记
- SIFI和ORB在尺度缩放、旋转、仿射上的特征点不变实验代码,并比较SIFI和ORB提取特征点的速度
- 怎么给计算机上锁键盘,想把笔记本电脑的键盘锁住,用外置键盘怎样做?
- 可视化 | 人物画像的设计方法
- 服务器虚拟化后有几个io地址,CPU虚拟化,内存虚拟化和IO虚拟化
- YY频道美化,模板修改工具【免费】可以闪动
- 跨交换机实现VLAN实验
- php中hr标签的用法,HTML: hr 标签
- 【联盛德W806上手笔记】六、7816/UART 控制器
- 算法竞赛专题解析(0)--写作计划
- 快速搭建一个本地的FTP服务器
热门文章
- 对象特性-构造函数和析构函数
- c语言程序中变量先引用声明,C语言如何跨文件调用函数定义中声明的变量
- opencv学习笔记(二)
- 读自动驾驶激光雷达物体检测技术(Lidar Obstacle Detection)(1):Stream PCD流式载入激光点云数据
- Python Qt GUI设计:QCalendar日历类和QDateTimeEdit时间类(基础篇—20)
- Atom:Uncaught TypeError: Right-hand side of 'instanceof' is not callable(markdown-scroll-sync)
- uint8_t uint16_t uint32_t uint64_t 解析
- CUDA硬件架构知识
- ceph bluestore 源码分析:刷缓存(trim)逻辑
- 编译ceph源码:cython module not found问题的解决