代码改变世界

(转)ASP.NET调用javascript脚本的方法总结

  潇湘隐者  阅读(1081)  评论(0编辑  收藏  举报

http://www.cnblogs.com/zmcblogs/archive/2009/12/24/1631335.html 

1、直接在前台调用 javascript 函数

 

很简单,在 head 元素之间加入 script 元素,将 type 元素设置为 " text/javascript "

如:

<head runat="server">
<script type="text/javascript" >
function ShowName(str)
{
alert("您的名字为:("+str+")");
}
</script>
    <title>using javascript</title>
</head>


之后在body 元素间,通过事件来访问 如 要通过button1 的单击事件(onclientclick)来访问 javascript 函数

示例如下:

<asp:Button ID="Button1" runat="server" Text="Button"  onclientclick="ShowName('XXX')"  />

这时运行项目,单击 button时,会显示"您的名称为XXX"

这就是一个简单的javascript 函数.

 

2、在前台通过 js文件 调用

 

方法与 (1)一样 只不过需要指定 .js 文件

示例如下:

<head runat="server">
<script type="text/javascript" src="JScript.js">
</script>
    <title>using javascript</title>
</head>

之后在body 元素间,通过事件来访问 如 要通过button1 的单击事件(onclientclick)来访问 javascript 函数

示例如下:

//此时 .js文件中必须有 ShowName 方法

<asp:Button ID="Button1" runat="server" Text="Button"  onclientclick="ShowName('XXX')"  />

 

3、在后台调用 javascript 函数,函数在.js文件中

 

前台的head 元素

<head runat="server">
<script type="text/javascript" src="JScript.js">
</script>
    <title>using javascript</title>
</head>

后台的需要添加如下代码

Button1.Attributes.Add("onclick", "showname1(XXX)");

 

4、在后台调用 javascript 函数,函数写在 .js文件中,但并没有在前台定义

 

//获得.js文件

string myscript = "JScript.js";

//注册.js文件, 如果此时查看源码,会得到如下代码

//<script> src ="JScript.js" type="text/javascript"><script>

Page.ClientScript.RegisterClientScriptInclude("myKey", myscript);

//同上
Button1.Attributes.Add("onclick", "showname1(123)");

 

5. 用Response.Write方法写入脚本

 

比如在你单击按钮后,先操作数据库,完了后显示已经完成,可以在最后想调用的地方写上
Response.Write("<script type='text/javascript'>alert();</script>");

这个方法有个缺陷就是不能调用脚本文件中的自定义的函数,只能调用内部函数,具体调用自定义的函数只能在Response.Write写上函数定 义,比如Response.Write("<script type='text/javascript'>function myfun(){...}</script>");

 

6.用ClientScript类动态添加脚本

 

    用法如下:在想调用某个javascript脚本函数的地方添加代码,注意要保证MyFun已经在脚本文件中定义过了。

    ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script>MyFun();</script>");

这个方法比Response.Write更方便一些,可以直接调用脚本文件中的自定义函数。

注意,以上所有方法中,后台代码都不能有转化当前页的代码,比如Redirect等,要把转页代码放在脚本里面

编辑推荐:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
阅读排行:
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
点击右上角即可分享
微信分享提示