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

kau*_*t3r 0 .net javascript asp.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>
Run Code Online (Sandbox Code Playgroud)

我正在使用Web表单,我不会在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!!!!

            */
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Man*_*hra 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); 
}
Run Code Online (Sandbox Code Playgroud)

你可以使用ScriptManager.RegisterStartupScriptScriptManager.RegisterClientScriptBlock

所以两者之间的差异解释如下:

假设我们有一个.aspx页面,其中包含以下表单标记:(行号仅供参考)

1. <form id="Form1" runat="server">
2. ..
3. ..
4. ..
5. </form>
Run Code Online (Sandbox Code Playgroud)

现在让我们看看每种方法的关键差异:

A. Page.RegisterClientScriptBlock()将在第2行之前插入脚本. Page.RegisterStartupScript()将在第4行之后插入脚本.

B. Page.RegisterClientScriptBlock()通常应该用于封装在函数中的脚本.(因此单词"block") Page.RegisterStartupScript()可以用于任何脚本,即使它不在函数中.

C. Page.RegisterClientScriptBlock()应该用于不需要在Page load上运行的函数. Page.RegisterStartupScript()应该用于必须在Page Load上运行的脚本.

D. Page.RegisterClientScriptBlock()应该用于不需要创建表单元素的脚本. Page.RegisterStartupScript()应该用于需要创建表单元素并使用对它们的引用的脚本.

请注意,所有4个差异基本上都是相互关联的(它们建立在prev.之上).放在一行中的差异有时可能过于微妙.

你可以从这里这里了解更多