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

关于ClientScript使用

1.使用Page.ClientScript.RegisterClientScriptBlock

使用 Page.ClientScript.RegisterClientScriptBlock可以防止javascript 函数放置在page的顶部

对于该输出,请注意:通过使用 RegisterClientScriptBlock,JavaScript 函数紧跟在 HTML 代码中开启元素 <form> 的后面。

下面就是个例子

前置文件4-10.aspx

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " 4-10.aspx.cs "  Inherits = " _4_10 "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > Untitled Page </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
    
< asp:Button  ID ="button1"  runat ="server"  Text ="click"  OnClientClick ="AlertHello()"   />
    
</ div >
    
</ form >
</ body >
</ html >

后置文件4-10.aspx.cs

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  _4_10 : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        String myScript 
=   @" function AlertHello(){alert('hello World');} " ;
        Page.ClientScript.RegisterClientScriptBlock(
this .GetType(),  " MyScript " , myScript,  true );
    }
}

 

运行一下看到什么??点击 "click"按钮得到了一个alert。不过你仔细检查我们代码看到什么?发现我们没有写<script type="text/javascript"></script> 这样的开始终止呢。原来Page.ClientScript.RegisterClientScriptBlock已经自动的帮我们生成了。当然这个是在你的function还算是比较大的情况下使用这。

 

上面一个是正确的例子,来分析一个异常的例子

 

<% @ Page Language = " C# "  AutoEventWireup = " true "  CodeFile = " 4-10.aspx.cs "  Inherits = " _4_10 "   %>

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >

< html  xmlns ="http://www.w3.org/1999/xhtml"   >
< head  runat ="server" >
    
< title > Untitled Page </ title >
</ head >
< body >
    
< form  id ="form1"  runat ="server" >
    
< div >
    
< asp:TextBox  ID ="TextBox1"  runat ="server" > Hello ASP.NET </ asp:TextBox >
    
</ div >
    
</ form >
</ body >
</ html >

 

using  System;
using  System.Data;
using  System.Configuration;
using  System.Collections;
using  System.Web;
using  System.Web.Security;
using  System.Web.UI;
using  System.Web.UI.WebControls;
using  System.Web.UI.WebControls.WebParts;
using  System.Web.UI.HtmlControls;

public   partial   class  _4_10 : System.Web.UI.Page
{
    
protected   void  Page_Load( object  sender, EventArgs e)
    {
        String myScript 
=   @" alert(document.forms[0]['TextBox1'].value); " ;
        Page.ClientScript.RegisterClientScriptBlock(
this .GetType(),  " MyScript " , myScript,  true );
    }
}

一运行发生了一个错误,根本不弹出窗口,原因就是当Page.ClientScriptRegisterClientScriptBlock已经生效的时候,textbox还没有开始生成呢。所以根本就无办法找到TextBox1

 这个时候只是需要修改一下Page.ClientScript.RegisterClientScriptBlock变成Page.ClientScript.RegisterStartupScript

2.Page.ClientScript.RegisterStartupScript()

当您有一个想要在页面加载时启动的 JavaScript 函数时.

 RegisterStartupScript 方法的两个可能结构如下: 
• RegisterStartupScript (type, key, script)
 
• RegisterStartupScript (type, key, script, script tag specification)
 
Page.ClientScript.RegisterStartupScript( this .GetType(),  " MyScript " ,
   
" function AlertHello() { alert('你好,ASP.NET'); } " true );

Button1.Attributes[
" onclick " =   " AlertHello() " ;
Button2.Attributes[
" onclick " =   " AlertHello() " ;

 

3. Page.ClientScript.RegisterClientScriptInclude

这个是用来include js 文件的,以前我们都是写个<script type......>个头在html中,现在不需要了

直接在asp.net 页面中书写以下代码,比如我们有个myjs.js 文件

 

string  myScript  = " myjs.js " ;
page.ClientScript.RegisterClientScriptInclude(
" mykey " ,myScript);

转载于:https://www.cnblogs.com/X-Jonney/archive/2009/06/03/1495258.html

http://www.lryc.cn/news/2419193.html

相关文章:

  • 我碰到的一种出现“ConnectionString 属性尚未初始化。”的情况
  • 系统随身带:将Ubuntu20.04装进移动硬盘
  • SSM整合学习BUG总结
  • Qt 布局管理器
  • 机器学习
  • aapt工具
  • 推荐项目:utf8.h —— 简洁高效的UTF-8字符串处理工具
  • 15个nosql数据库,你知道几个?
  • emule最新服务器地址,emule更新服务器列表
  • GDI+ 文本测量方法
  • DLNA介绍(包括UPnP)
  • 对38位互联网大佬奇葩癖好的奇葩解读
  • 心脏滴血漏洞利用(CVE-2014-0160)
  • 【千峰】网络安全学习笔记(一)
  • HTML5学习(一)
  • 用Java实现贪吃蛇
  • 一、echarts地图全国地图进省地图
  • Access入门简单教程
  • 高分一号(GF-1)卫星影像数据全色和多光谱信息介绍
  • Linux 服务器建站新手教程 (宝塔建站全流程)- 不需要敲一行命令 (记录啊、好东西)(1)
  • AspNetPager 几种常见样式
  • 海外idc有哪些?海外IDC服务商推荐
  • LSF作业管理系统简易使用指南
  • 上证指数的计算公式
  • Virtools
  • 男生诡异世界观,是不是跟你想的不一样~
  • MS-DOS系统的操作命令
  • Windows下usb接口驱动技术
  • filtic函数详解(附3个实例)
  • mfc中CImageList的使用