我有这个aspx:
<body>
<div>
<script type="text/javascript">
function NewPage() {
document.location.href = "http://www.nextservice.pt/"
}
</script>
<form id="form1" runat="server">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Btn2" runat="server" Text="OK" onclick="Button2_Click" />
CODE1: <asp:Label ID="Label1" runat="server" Text="Label" ForeColor="#CC0000" />
</form>
</div>
</body>
我正在使用网络表单,我不会在aspx.cs上调用此按钮
public partial class SITE_TESTER : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click (object sender, EventArgs e)
{
string code = TextBox1.Text.ToString();
if (!verifyCode(code)) // comparing users from table
{
Label1.Text = "Not Exists"; //for invalid code
}
else
{
Label1.Text = "Exist"; //for sucsseful code
/*
I Wont call my JavaScript Function here!!!!
*/
}
}
}
答案 0 :(得分:7)
你可以通过以下方式从asp.net的服务器端调用javascript方法:
protected void button_Click(object sender , EventArgs e)
{
string jsMethodName= = "NewPage()";
ScriptManager.RegisterClientScriptBlock(this, typeof(string), "uniqueKey", jsMethodName, true);
//or
//ScriptManager.RegisterStartupScript(this, GetType(), "NewPage()", false);
}
您可以使用ScriptManager.RegisterStartupScript
或ScriptManager.RegisterClientScriptBlock
两者之间的区别如下:
假设我们有一个带有以下表单标记的.aspx页面:(行 号。仅供参考)
1. <form id="Form1" runat="server">
2. ..
3. ..
4. ..
5. </form>
现在让我们看看每种方法的主要差异:
一个。
Page.RegisterClientScriptBlock()
将插入脚本的块
在第2行之前。
Page.RegisterStartupScript()
将在第4行之后插入脚本。
B中。
Page.RegisterClientScriptBlock()
通常应该用于脚本
封装在函数中。 (因此,“块”一词)
Page.RegisterStartupScript()
可用于任何脚本,即使它是
不在功能中。
℃。
Page.RegisterClientScriptBlock()
应该用于那些功能
不需要在页面加载上运行。
Page.RegisterStartupScript()
应该用于必须运行的脚本
在页面加载。
d。
应该使用Page.RegisterClientScriptBlock()
作为脚本
不需要创建表单元素。
Page.RegisterStartupScript()
应该用于需要的脚本
要创建的表单元素并使用对它们的引用。
请注意,所有4个差异基本上与每个差异相关 其他(他们建立在上一个)。差异放在一行 有时可能太微妙了。
了解更多相关信息答案 1 :(得分:0)
您可以添加将页面加载到浏览器时执行的脚本:
Page.RegisterStartupScript("unique_key", "<script type=\"text/javascript\">NewPage()</script>"); // but this is deprecated function
或者像这样:
ClientScript.RegisterClientScriptBlock(this.GetType(), "unique_key", "NewPage()", true);
但如果您只是想进行重定向(我可以从您的NewPage函数中看到),您可以这样做:
Response.Redirect("http://www.example.com");