ASP.NET2.0中Page.ClientScript.RegisterClientScriptBlock与RegisterClientScriptBlock
2010年07月07日 星期三 18:35
既然我们可以在 HTML 元素内部嵌入部分 JavaScript,甚至可以以动态方式使用 JavaScript 和 Web 服务器控件,那么如何将全部
JavaScript 函数置于您的代码中呢?
可通过多种方法来完成此任务,我们将介绍几种可在 ASP.NET 代码中使用的较为常见的方法。在本文中,我们将介绍如何使用新的
Page.ClientScript 属性。在 ASP.NET 2.0 之前,您需要使用
RegisterStartupScript 和
RegisterClientScriptBlock 方法。现在,这两个方法已被淘汰。在 ASP.NET 1.x
中注册脚本的两种可能方法均需要使用一组关键字/脚本参数。由于涉及到了两个独立的方法,因此极有可能会出现一些关键字名称冲突。Page.ClientScript
属性本身就可以完成所有的脚本注册,从而使您的代码少出错。
先看一下下面的列子:
//要根据后台取的值初始化页面显示
protected void Page_Load(object sender, EventArgs e)
{ if (!IsPostBack) {
GetGovShiftSetInfo();//此方法作用:取数据库数据来设置rbTwo状态 if
(rbTwo.Checked) {
//Page.RegisterStartupScript("", "<script>istwo();</script>");
//1.0的语法构造,已过时
Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", "istwo();",
true); } } }
----------------------------------------------------------------------------------------
//放在前台的JS:
<script type="text/javascript"> function
istwo() { var
obj1=window.document.getElementById("ctl00_MainContent_panelPmB");
var
obj2=window.document.getElementById("ctl00_MainContent_panelPmE");
var
obj3=window.document.getElementById("ctl00_MainContent_lbAmB");
var
obj4=window.document.getElementById("ctl00_MainContent_lbAmE");
var
obj5=window.document.getElementById("ctl00_MainContent_panelCard");
obj1.style.visibility = "hidden"; obj2.style.visibility =
"hidden"; obj3.style.visibility = "hidden";
obj4.style.visibility = "hidden"; obj5.style.visibility =
"hidden"; var no3=
parseInt(window.document.getElementById("ctl00_MainContent_txtValue").value);
if (no3 < 5 || no3 > 500 ) {
alert("上下班刷卡有效时限:[5-500]分钟内");
window.document.getElementById("ctl00_MainContent_rbFour").focus();
window.document.getElementById("ctl00_MainContent_rbFour").checked=true;
isfour(); } }
--------------------------------------------------------------------------------------------------------
之所以没用Page.ClientScript.RegisterClientScriptBlock而用Page.ClientScript.RegisterStartupScript是因为:RegisterStartupScript 把script放置在ASP.NET
page的底部,而RegisterClientScriptBlock把script放置在ASP.NET
page的顶部,用RegisterClientScriptBlock会报错:javascript函数不到对象
如果你的页面中有如下代码:
<asp:TextBox ID=”TextBox1”
Runat=”server”>
Hello ASP.NET
</asp:TextBox>
c#
protectedvoid
Page_Load(object sender, EventArgs e)
{
string myScript =
@”alert(document.forms[0][‘TextBox1’].value);”;
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
“MyScript”, myScript, true);
}
此页面运行时会报错,原因是JavaScript function先于text
box被安放于浏览器。因此JavaScript function找不到TextBox1。
c#
protectedvoid
Page_Load(object sender, EventArgs e)
{
string myScript
=
@”alert(document.forms[0][‘TextBox1’].value);”;
Page.ClientScript.RegisterStartupScript(this.GetType(),
“MyScript”,
myScript, true);
}
这段代码把JavaScript function放置于ASP.NET
page底部,因此JavaScript运行时它能找到TextBox1。
3.使用Page.ClientScript.RegisterClientScriptInclude 许多开发者把JavaScript放置在.js文件中,使用RegisterClientScriptInclude方法可以注册.js文件中的JavaScript。
c#
string myScript =
“myJavaScriptCode.js”
Page.ClientScript.RegisterClientScriptInclude(“myKey”,
myScript);
这将在ASP.NET页面产生如下结构: <script src=”myJavaScriptCode.js”
type=”text/javascript”></script>
|
分享到:
相关推荐
该书与《ASP.NET 2.0入门经典(第4版)》及其早期版本,曾影响到无数中国Web程序员。. ASP.NET允许Web站点为每个访问者显示独一无二的页面,而不是显示相同的静态HTML页面。ASP.NET 2.0的发布,使Web应用程序的...
本书全面介绍了ASP.NET各种编程技能和2.0版中的巨大变化,并详细阐述了2.0版中的每个新特性。书中提供了大量的实例,可帮助读者快速掌握如何在.NET平台下开发功能强大的ASP.NET应用程序。本书适合有一些基础的ASP...
如何封装JS和CSS文件为服务器端控件---ASP.NET 2.0 我们以封装一个JS的日期控件为列子,将它和服务器的TextBox结合在一起做成一个服务器控件,以达到直接托上去就可以使用的效果。其实很简单,大家共同学习。先看看...
一般弹窗 代码如下: Page.ClientScript.RegisterStartupScript(this.GetType(), “message”, “alert(‘确定删除吗’)”, true); 第一个参数不会变, 第二个参数是键值的意思,如果只有一个弹出对话框的...
//Page.ClientScript.RegisterClientScriptBlock(Page.GetType(),"alert1", "alert('test')",true); //在生成页面的前半部分!! //其中true,表示可以不输入[removed] [removed] //下面执行js代码 this....
最近在用ASP .NET的code behind 调用javascript中发现Response.Write不能拿到form的值,而ClientScript.RegisterStartupScript可以。
用Page.ClientScript.RegisterClientScriptBlock 和Page.ClientScript.RegisterStartupScript:区别: 1.使用Page.ClientScript.RegisterClientScriptBlock c#代码 代码如下: <%@ Page Language=”C#” %> ...
page.ClientScript.RegisterStartupScript(typeof(string), "message", "$(document).ready(function() { var para = { mode: 'sample',message:'"+msg+"', title: '提示信息', firstboxval: $(\"#fileText\")....
1.ClientScript.RegisterStartupScript(GetType(),”message”,”[removed]alert(...3.public static void Show(System.Web.UI.Page page, string msg) { page.ClientScript.RegisterStartupScript(page.Get
例如: protected void Page_Load(object sender, EventArgs e) { //.net1.1 Button1.Attributes.Add(“onclick”, “this.disabled=true;...” + this.ClientScript.GetPostBackEventReference(Button1, “”
非Ajax无刷之ClientScript_GetCallbackEventReference_楚天雪饮的空间
if (this.txtDLM.Text.Trim() == "") { Page.ClientScript.RegisterStartupScript(this.GetType(), "info", "<script>alert('登录名不能为空!');</script>"); return; } if (this.txtMM.Text.Trim() != this....
第13章 asp.net中的ajax开发 238 13.1 纯javascript开发ajax应用 238 13.2 第三方(ajaxpro)开发 13.2 ajax应用 246 13.3 微软ajax控件库开发ajax应用 254 13.3.1 scriptmanager控件 254 13.3.2 ...
asp.net后台如何输出js脚本,用page.ClientScript.RegisterStartupScript方式实现,实现示例如下,感兴趣的朋友不要错过
Page.ClientScript.IsClientScriptBlockRegistered(SCRIPT_ID))//如果还没有注册语句,则注册 { Page.ClientScript.RegisterClientScriptBlock(this.GetType(),SCRIPT_ID,SCRIPT_CONTENT); } } private co
1、IsStartupScriptRegistered:对象... 第一个例子: string info = “[removed]alert(‘你好吗?’);[removed]”;...body>—-[removed]<...Page.ClientScript.IsStartupScriptRegistered(“test”)) { /
如何将 JavaScript 脚本或库...Page.ClientScript.IsClientScriptIncludeRegistered(“jsFileInclude”)) Page.ClientScript.RegisterClientScriptInclude(“jsFileInclude”, “JsFile.js”); 在viewstate数据的文档