javascript - 使用按钮在 aspx.cs 上调用 JavaScript 函数(以 aspx 形式)

标签 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>

并且我正在使用 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!!!!

            */
        }
    }
}

最佳答案

您可以通过以下方式从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>

现在让我们看看每种方法的主要区别:

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

B. Page.RegisterClientScriptBlock() 通常应该用于脚本 封装在函数中。 (因此出现了“ block ”这个词) Page.RegisterStartupScript() 可用于任何脚本,即使它是 不在函数中。

C. Page.RegisterClientScriptBlock() 应用于以下功能: 不需要在页面加载时运行。 Page.RegisterStartupScript() 应用于必须运行的脚本 页面加载。

D. Page.RegisterClientScriptBlock() 应该用于执行以下操作的脚本 不需要创建表单元素。 Page.RegisterStartupScript() 应用于需要 已创建的表单元素并使用对它们的引用。

请注意,所有 4 个差异本质上都与每个差异相关 其他(它们建立在前一个的基础上)。差异放在一行中 有时可能过于微妙。

您可以通过here了解更多信息和 here

关于javascript - 使用按钮在 aspx.cs 上调用 JavaScript 函数(以 aspx 形式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14578911/

相关文章:

javascript - 在其派生链中调用 Observable 的 onNext() 方法

c# - 如何从 asp.net 中的数据库填充 'select'

.net - NHibernate - 从聚合中选择完整记录

c# - 生成和打印身份证时文本模糊

javascript - 如何在 Node 中使用 cheerio 和请求写入文件?

javascript - 如何创建根据另一个下拉菜单的答案出现的下拉菜单

javascript - 如何将此 Silverlight 控件转换为 HTML/CSS/JS

asp.net - 如何重新定位 asp.net ajax ValidatorCalloutExtender

c# - 从桌面客户端调用时 SessionState 集合项消失

c# - 与我的开发机器相比,为什么 Uri.EscapeDataString 在我的 CI 服务器上返回不同的结果?