my test code:
-->
private void load()
{
ClientScript.RegisterStartupScript(this.GetType(), "Shift", "<script type='text/javascript'>GetXmlValues('" + XMLName.Shift + "','ctl00_ContentPlaceHolder1_dropShift','Shift','SHIFT');</script>");
}
其中:GetXmlValues是源中前台javascript函数, ctl00_ContentPlaceHolder1_dropShift 是.NET Control DropDownList (dropShif)的完整名称, 加MasterPage都会在Id前面加入类似"ctl00_ContentPlaceHolder1_"的前缀.无论多少层,都只加一个.
public void RegisterStartupScript(Type type, string key, string script)
参数
type
类型:System.Type
要注册的启动脚本的类型。
key
类型:System.String
要注册的启动脚本的键。
script
类型:System.String
要注册的启动脚本文本。
<--
//保存为 test.js 文件
function a1() {
alert("a1");
}
function a2() {
alert("a2");
}
//test.aspx 页面
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void BtnTest_Click(object sender, EventArgs e)
{
//执行js文件里面的a1()函数
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "a1", "a1();", true);
//this.BtnTest.Attributes.Add("onclick", "a1();"); 这种也可以
//编译后,查看源文件 会发现他们的区别
Response.Write("执行");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
//导入刚才的js文件
<script src="test.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button ID="BtnTest" runat="server" Text="Click Me" onclick="BtnTest_Click" />
</div>
</form>
</body>
</html>
这篇博客探讨了如何在ASP.NET的后台CS代码文件中调用前台JavaScript文件中的函数。通过`ClientScript.RegisterStartupScript`方法,可以将JS脚本注册到页面中并在适当的时候执行。例如,使用`GetXmlValues`函数来处理XML数据,并在按钮点击事件中调用前端定义的`a1`和`a2`函数,实现前后端的交互。

210

被折叠的 条评论
为什么被折叠?



