如何从asp.net codebehind pageload 调用此 javascript 函数。
<script type="text/javascript">
function abc() {
alert("Hello! I am an alert box!");
}
</script>
是否可以从asp.net codebehind pageload传递一个整数数组到javascript函数?
答案 0 :(得分:10)
尝试以下代码:
protected void Page_Load(object sender, EventArgs e)
{
System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "abc", "abc();", true);
}
<强> 1。更新&gt;传递字符串参数:
protected void Page_Load(object sender, EventArgs e)
{
var message = "hi";
System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "abc", "abc('" + message + "');", true);
}
带字符串参数的JavaScript方法:
function abc(message) {
alert(message + ", I am an alert box!");
}
<强> 2。更新&gt;将字符串参数和数字数组传递给JS方法:
protected void Page_Load(object sender, EventArgs e)
{
int[] numbers = { 10, 20, 30 };
string serializedNumbers = (new JavaScriptSerializer()).Serialize(numbers);
var message = "hi";
System.Web.UI.ScriptManager.RegisterStartupScript(this, this.GetType(), "abc", "abc('" + message + "', " + serializedNumbers + ");", true);
}
包含字符串和数字数组参数的JavaScript方法:
function abc(message, numbers) {
alert(message + ", I am an alert box!");
for (var i = 0; i < numbers.length; i++) {
alert(numbers[i]);
}
}
答案 1 :(得分:1)
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(GetType(), "abc" + UniqueID, "abc();", true);
}
如果使用ajax,则需要使用ScriptManager。
protected void Page_Load(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, GetType(),
"abc" + UniqueID, "abc();", true);
}
答案 2 :(得分:0)
尝试
Dim script As String = String.Format("abc()", "")
ScriptManager.RegisterClientScriptBlock(Me, GetType(Page), UniqueID, script, True)
或者只是
ClientScript.RegisterStartupScript(GetType(), "abc", "alert('Hello! I am an alert box!')", true);
答案 3 :(得分:0)
您无法从代码隐藏中调用JavaScript函数,但您可以返回一个响应,其中包含在浏览器中加载页面时调用该函数的JavaScript。只需确保您的信息页包含
即可<script type="text/javascript">
function abc() {
alert("Hello! I am an alert box!");
}
abc();
</script>
这可以作为ASPX页面的一部分,也可以将其注册为代码隐藏中的脚本块。