当前位置: 首页 > news >正文

asp.net向页面注册脚本

相关概念

在 .aspx.cs 页面中,输入这四个东西:Page.ClientScript、ClientScript、ScriptManager、ClientScriptManager,均会出提示,表示它们均可用,那么它们有什么区别呢?

Page.ClientScript 与 ClientScript 的关系

这二者实际上是一个东西,后者只是省略了 Page。都是获取用于管理脚本、注册脚本和向页添加脚本的 ClientScriptManager 对象。

Page.RegisterClientScriptBlock 与 Page.RegisterStartupScript(也可省略 Page),微软已经不推荐这样写,而应该是 Page.ClientScript.RegisterClientScriptBlock 或Page.ClientScript.RegisterStartupScript(同样,这里的Page也可省略),

ScriptManager 与 ClientScriptManager 区别

他们的名称空间均是 System.Web.UI。

  • ScriptManager 是用于管理 AJAX 脚本库和脚本文件;
  • ClientScriptManager 用于管理普通的 script,就比如向客户端输出一个 <script>alert("");</script>。

ClientScript 与 ClientScriptManager 区别

ClientScriptManager 是类,ClientScript 是 ClientScriptManager 的对象。

五个方法

RegisterClientScriptBlock、RegisterClientScriptInclude、RegisterStartupScript、RegisterOnSubmitStatement、RegisterClientScriptResource

重点:执行这些方法必须的页面必须有<form runat="server"></form>

 
aspx.cs部分:
1.ClientScript.RegisterClientScriptBlock(this.GetType(),"ScriptBlock","<script>alert('RegisterClientScriptBlock');</script>");
2.ClientScript.RegisterClientScriptInclude(this.GetType(),"ScriptInclude","RegisterClientScriptInclude.js");
3.ClientScript.RegisterStartupScript(this.GetType(),"StartupScript","<script>alert('RegisterStartupScript');</script>");
 
产生位置:
<html >
<head>
    <title></title>
</head>
<body>
    <form >
    <script>alert('RegisterClientScriptBlock');</script>
   <script src="RegisterClientScriptInclude.js" type="text/javascript"></script>
      <div>
       </div>
   <script>alert('RegisterStartupScript');</script>
    </form>
</body>
</html>
 
RegisterClientScriptBlock 将脚本代码写在前 <form> 之后。
RegisterStartupScript 将代码写在 </form>(注意是结束标签)之前。
RegisterClientScriptInclude 用于产生一个 <script src="..." 这样的代码。
RegisterOnSubmitStatement 添加执行以响应网页 onsubmit 事件的 JavaScript。 该脚本在页面提交前执行并提供取消提交的机会。该语句在提交 HtmlForm 时执行。
RegisterClientScriptResource 也是产生一个 <script src="..." 这样的代码,但是,它的 src 中不是直接跟的 js 文件,而是 /WebResource.axd?... 这样的东西。
例: ClientScript.RegisterClientScriptResource(this.GetType(), "js/common.js");
上面生成的 script 标签的 src 对应的地址就是形如 /WebResource.axd?... 的,等于:ClientScript.GetWebResourceUrl(this.GetType(), "js/common.js")。
 
上面提到了 WebResource.axd,它并不是您网站中实际存在的一个文件,它是一个映射出来的,直接在浏览器中输入地址访问是找不到的。实际上在这里用 WebResource.axd 并没有什么多大意义,其正有效的用法请参照:http://support.microsoft.com/kb/910442(机器翻译的,有点拙)。
 
RegisterClientScriptInclude、 RegisterClientScriptResource、RegisterClientScriptBlock 都是在 body 最前面添加脚本(<form>之后),他们三个之间就没有优先级了,谁在前面谁就先执行。
 
上述方法除RegisterClientScriptResource 外都有一个方法判断客户端脚本是否已存在, 从而避免不必要地添加脚本的尝试。
RegisterClientScriptBlock 方法用 Page.ClientScript.IsClientScriptBlockRegistered( this .GetType(),  " myName " )判断
RegisterClientScriptInclude 方法用ClientScript.IsClientSecriptIncludeRegistered(this.GetType(), "myMessage")
RegisterStartupScript 方法用 Page.ClientScript.IsStartupScriptRegistered("welcome")
RegisterOnSubmitStatement 方法用 IsOnSubmitStatementRegistered
-----------------------------------------------------------------------------------------------------------------------

MSDN  ClientScriptManager 类http://msdn.microsoft.com/zh-cn/library/0skaxdwf(v=vs.80).aspx



通过 为知笔记 发布


转载于:https://www.cnblogs.com/weapon/archive/2012/11/22/2782474.html

相关文章:

  • Unity 3D调用Windows打开、保存窗口、文件浏览器
  • Snapchat为Mac、Windows平台推出AR新工具,方便用户创造实景物体
  • 2003系统创建软RAID磁盘阵列完全手册
  • 如何解决临时空间暴增导致磁盘满问题?
  • 网络负载平衡
  • Linux的基本指令--目录和文件和文件属性和文件用户组
  • Hessian解析及应用(整合Spring)
  • 用Qemu运行/调试arm linux【转】
  • OpenCV 2.4+ C++ SVM文字识别
  • 深入剖析 iOS 性能优化
  • AIX学习之—存储管理(LVM)
  • KEUC首次落地中国,网易云深度剖析Kubernetes优化与实践
  • 当人工智能遇上区块链,会发生什么?
  • 2012年最受欢迎的PHP框架
  • 高西庆:对区块链加以规范有利于财富公平公正分配
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • codis proxy处理流程
  • create-react-app项目添加less配置
  • Elasticsearch 参考指南(升级前重新索引)
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Java小白进阶笔记(3)-初级面向对象
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • mockjs让前端开发独立于后端
  • MySQL用户中的%到底包不包括localhost?
  • react-native 安卓真机环境搭建
  • STAR法则
  • 看域名解析域名安全对SEO的影响
  • 码农张的Bug人生 - 初来乍到
  • 三分钟教你同步 Visual Studio Code 设置
  • 消息队列系列二(IOT中消息队列的应用)
  • 你对linux中grep命令知道多少?
  • 《天龙八部3D》Unity技术方案揭秘
  • 正则表达式-基础知识Review
  • #Z0458. 树的中心2
  • #在 README.md 中生成项目目录结构
  • (02)vite环境变量配置
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (二)PySpark3:SparkSQL编程
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(二):%0 %1——给批处理脚本传递参数
  • .NET Core 将实体类转换为 SQL(ORM 映射)
  • .Net Core与存储过程(一)
  • .NET 设计一套高性能的弱事件机制
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • @media screen 针对不同移动设备
  • @test注解_Spring 自定义注解你了解过吗?
  • [C++基础]-初识模板
  • [DL]深度学习_Feature Pyramid Network
  • [hdu 1247]Hat’s Words [Trie 图]
  • [HNOI2010]BUS 公交线路
  • [Java] IDEA Scala环境搭建