使用按钮在aspx.cs上调用JavaScript函数(在aspx中)

时间:2013-01-29 08:53:00

标签: javascript asp.net .net webforms

我有这个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!!!!

            */
        }
    }
}

2 个答案:

答案 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.RegisterStartupScriptScriptManager.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个差异基本上与每个差异相关 其他(他们建立在上一个)。差异放在一行 有时可能太微妙了。

您可以从herehere

了解更多相关信息

答案 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");