当前位置: 首页 > 编程日记 > 正文

为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函数来调用一个字符串中包含的命令。需注意的是包含命令的字符串不能用单引号括起来,因为自动生成的脚本中包括单引号,所以这里用两个双引号表示字符串本身的双引号。 

相关文章:

玩转 Python 爬虫,需要先知道这些

作者 | 叶庭云来源 | 修炼Python头图 | 下载于视觉中国爬虫基本原理1. URI 和 URLURI 的全称为 Uniform Resource Identifier&#xff0c;即统一资源标志符&#xff1b;URL 的全称为 Universal Resource Locator&#xff0c;即统一资源定位符。比如Github的图标&#xff1a;htt…

oracle命令导入表

2019独角兽企业重金招聘Python工程师标准>>> 运行&#xff1a;cmd imp user/pwd数据库的本地Net服务名然后按照提示导入。 转载于:https://my.oschina.net/unlimit/blog/159428

通过Google挖掘细分市场的一个案例

我是亦仁&#xff0c; 前阿里运营&#xff0c;现持续创业者。 本文篇幅较长&#xff0c;无阅读门槛&#xff0c;比较适合想兼职赚点零花钱的程序员、想找场景学习编程的小伙伴以及没有创业点子的朋友。全文4000字&#xff0c;完整读完大约需要10分钟。 理论上来说&#xff0c;如…

GCC生成的汇编代码

假设我们写了一个C代码文件 code.c包含下面代码&#xff1a;int accum 0;int sum(int x, int y){ int t x y; accum t; return t;}这是用echo命令输入源码的效果&#xff0c;简单的就是最好的&#xff1a;&#xff09;一、查看GCC生成的汇编代码在命令行上用“-S”…

2021年浅谈多任务学习

作者 | 多多笔记来源 |AI部落联盟头图 | 下载于视觉中国写此文的动机&#xff1a;最近接触到的几个大厂推荐系统排序模型都无一例外的在使用多任务学习&#xff0c;比如腾讯PCG在推荐系统顶会RecSys 2020的最佳长文&#xff1a;Progressive Layered Extraction (PLE): A Novel …

[K/3Cloud]关于数据库sa密码更改,管理中心登录不上的问题。

有时候可能应为别的原因可能一不小心更改了数据库的密码&#xff0c;导致K/3 Cloud管理中心和单据打不开。 这个时候其实只要在注册一下就能解决了&#xff0c;在浏览器中输入http://192.168.25.35:8000/Silverlight/CMC.aspx 用这个地址重新注册就可以了。转载于:https://www.…

597个智慧城市相关试点将临大考

近600个智慧城市试点面临国家部委的首次评价检验。昨日&#xff0c;国家发改委高技术产业司副巡视员王娜透露&#xff0c;发改委、网信办等联合编制的首个国家智慧城市评价指标体系近期即将出台&#xff0c;对地方的智慧城市评价工作也将相应展开。 国家发改委高技术产业司副巡…

(原创)JAVA注解应用——实现属性的自动检测

一、什么是注解 Annotation(注解)是JDK5.0及以后版本引入的新特性。它可以用于创建文档&#xff0c;跟踪代码中的依赖性&#xff0c;甚至执行基本编译时检查。注解是以‘注解名’在代码中存在的&#xff0c;根据注解参数的个数&#xff0c;我们可以将注解分为&#xff1a;标记注…

整合vs2005sp1到vs2005安装文件中

首先,需要大于3G的硬盘空间(解压VS2005用),这个补丁只会应用到VS2005上,和我们的MSND是没有啥关系的.1.解压VS2005.首先需要把我们VS2005安装光盘内的安装文件解压在我们的硬盘上.使用如下命令: 程序代码msiexec.exe /a G:/VS/vs_setup.msi TARGETDIRD:/VSSETUP /L*vx install.…

唏嘘!程序员,你的年底KPI完不成的原因找到了!

加班是每个互联网人不愿面对而却又绕不过去的话题&#xff0c;就连面试时“你怎么看待加班”的问题都成了必答题。现在临近年底&#xff0c;大家都在努力冲业绩&#xff0c;期待拿更多的年终奖&#xff0c;回家过个“富足年”。年底冲业绩&#xff0c;势必会增加我们的工作量&a…

Hooq 登陆新加坡,“亚洲版 Netflix ”要与对标公司抢夺东南亚视频市场

近日&#xff0c;在进入菲律宾、泰国、印度、印尼四国之后&#xff0c;Hooq 正式在新加坡推出其视频服务。 Hooq 是一家视频点播流媒体平台&#xff0c;成立于 2015 年&#xff0c;由 Singtel (新加坡最大的电信公司)、索尼和华纳兄弟共同出资 2200 万美元成立&#xff0c;其中…

c#如何取自身应用程序文件名和路径?

// 应用程序的路径&#xff0c;不带文件名 Application.StartupPath(); // 产品名称 Application.ProductName; // 产品版本&#xff08;可由.net自动升成版本控制&#xff09; Application.ProductVersion

使用阿里云服务器时遇到的问题及解决办法

2019独角兽企业重金招聘Python工程师标准>>> 1、在命令行里面直接输入中文数据会乱码&#xff0c;如果用phpmyadmin就不会了。 2、json返回的数据中中文乱码&#xff0c;通过修改文件的编码可以解决。 3、页面文件中<body>标签后面多了个空格和空行&#xff0…

“算法不行,干啥都不行!”面试官:面试基本都会考这点!

无论你是 Java&#xff0c;Python&#xff0c;还是 PHP&#xff0c;面试总逃脱不了一个问题&#xff1a;算法&#xff01;据统计&#xff0c;各大厂笔试平均通过率只有 10%~20%&#xff0c;基本都折在了算法上。滴滴出行笔试通过率为 18.2%&#xff1b;腾讯秋招笔试通过率不足1…

归于软银帐下,ARM需要接受的变与不变

摘要&#xff1a;软银此次对于ARM的收购&#xff0c;在无形之中也拉近了ARM与日本IDM大厂间的合作距离&#xff0c;可以帮助其更好地进行超算芯片的制造&#xff1b;而从另一个层面来讲&#xff0c;“后K超级计算机”又何尝不是ARM的一个“活字招牌”&#xff1f;7月中旬&#…

C#中TextBox只能输入数字的代码

private void txbSleep_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsNumber(e.KeyChar) || e.KeyChar /b)) { e.Handled true; } }

Linux技巧总结(个人经验版)

1&#xff1a;善用桌面&#xff1a;1、图形界面的编辑&#xff0c;2、终端只要开机就在第2桌面&#xff0c;3、浏览器在第3桌面&#xff0c;4、娱乐在第4桌面。 2&#xff1a;cd命令中&#xff0c;输入中文目录很不方便&#xff0c;用 ln -s 桌面 desktop 创建软链接&#xff0…

一流科技完成5000万人民币A轮融资,高瓴创投独家领投

2月4日&#xff0c;专注于人工智能基础设施软件的研发工作的一流科技宣布完成由高瓴创投独家领投的A轮融资&#xff0c;这是其两年来再次开放融资&#xff0c;融资总额5000万元人民币。本次融资将用于高端人才招募、核心产品研发和商业模式拓展。自2017年创立以来&#xff0c;一…

发改委:加速布局车联网与自动驾驶

发改委网站5日消息&#xff0c;近日&#xff0c;为深入贯彻落实《国务院关于积极推进“互联网”行动的指导意见》(国发〔2015〕40号)&#xff0c;国家相关部门联合发布《推进“互联网”便捷交通促进智能交通发展的实施方案》(以下简称《实施方案》)&#xff0c;旨在全面推进交通…

花了两天,终于把 Python 的 setup.py 给整明白了

作者 | 写代码的明哥来源 | Python编程时光头图 | 下载于视觉中国为什么需要对项目分发打包平常我们习惯了使用 pip 来安装一些第三方模块&#xff0c;这个安装过程之所以简单&#xff0c;是因为模块开发者为我们默默地为我们做了所有繁杂的工作&#xff0c;而这个过程就是 打包…

MyBatis 中的 set 元素用法(MyBatis 3.1.1)

2019独角兽企业重金招聘Python工程师标准>>> 现在的写法A&#xff1a; <update id"update" parameterType"ruleItem.Bean"> update t_rule_item <!-- set id#{id} --> <set> <if test"ruleId!null and rul…

在.NET环境下发送邮件

在微软.NET环境中的System.Web.Mail的命名空间里,提供了几个类,使得你根本就不需要了解POP3等一系列网络协议,就可以在程序中轻松的发送邮件,非常简单,本文就简要的介绍一下,如何用C#语言来实现。 首先,我们要添加这个命名空间 using System.Web.Mail; 现在,我们来生成邮件本身…

Google刚刚开源了一款用于测试iOS应用的工具:EarlGrey

Google于今日宣布了开源的EarlGrey软件&#xff0c;以便开发者更轻松地构建和运行“面向iOS apps源码”的用户界面测试(是的&#xff0c;你没看错!)当前托管于GitHub上、遵从开源Apache授权的EarlGrey&#xff0c;由Objective-C编写而成。不过本次发布的重要性在于&#xff0c;…

发送邮件程序(Csharp2005)

我觉得懂得编写发送邮件客服端丰常重要.这可以把它嵌入到你的软件里加强与用户的沟通与可以收集程运行的错误信息.以与我编写一小的发送邮件客服端来与在家交流.程序如下:发送邮件解决方案下载 接下来,我来说一下我开发的过程与体会:创建发送邮件客服端步骤:1.创建Smtp服务器…

reindex-maven 私服(nexus)架设以及项目管理中遇到的问题及解决方案(updating)

--- 用maven 的过程中 大问题小问题实在是不少 &#xff0c;就不一篇文章一篇文章的写了&#xff0c;干脆写在一起 ---- ------- nexus 加索引 点击Administration菜单下面的Repositories&#xff0c;将这三个仓库Apache Snapshots&#xff0c;Codehaus Snapshots&#xff…

爬了20W+条猫咪交易数据,它不愧是人类团宠

作者 | 叶庭云来源 | 修炼Python头图 | 下载于视觉中国前言看到可爱的猫咪表情包&#xff0c;总是会忍不住收藏&#xff0c;晒部分图如下&#xff1a;认识的一些朋友也养了猫&#xff0c;比如橘猫、英短、加菲猫之类的&#xff0c;看他们发朋友圈撸猫&#xff0c;老羡慕了&…

数据中心建设“优劣”在于这几个关键问题

数据中心的建设是一个整体结构&#xff0c;任何一个细节规划忽略都有可能导致问题的发生&#xff0c;规划设计的优劣&#xff0c;也只有在系统运行后才能做客观的评估&#xff0c;很多问题要经过较长时间&#xff0c;甚至是设备或系统的一个生命周期内才能暴露出来。因此&#…

如何有效的使用C#读取文件

你平时是怎么读取文件的&#xff1f;使用流读取。是的没错&#xff0c;C#给我们提供了非常强大的类库&#xff08;又一次吹捧了.NET一番&#xff09;&#xff0c;里面封装了几乎所有我们可以想到的和我们没有想到的类&#xff0c;流是读取文件的一般手段&#xff0c;那么你真的…

eclipse 默认jdk 的设置 eclipse.ini -vm 参数

2019独角兽企业重金招聘Python工程师标准>>> eclipse 的配置文件 eclipse.ini 不仅仅可以设置eclipse的堆栈内存大小&#xff0c;也可设置默认使用的jdk版本。 一、现有个eclipse 默认启动jdk版本是jdk1.5&#xff0c;需更改为1.6 步骤如下&#xff1a; 方法1&#…

用韩信三技能,讲清楚一致性哈希

作者 | 悟空聊架构来源 | 悟空聊架构头图 | 下载于视觉中国韩信点兵的成语来源淮安民间传说。常与多多益善搭配&#xff0c;寓意越多越好。我们来看下主公刘邦和韩信大将军的对话。刘邦&#xff1a;“你觉得我可以带兵多少&#xff1f;”韩信&#xff1a;“最多十万。”刘邦不解…