Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用按钮在aspx.cs上调用JavaScript函数(在aspx中)_Javascript_Asp.net_.net_Webforms - Fatal编程技术网

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

使用按钮在aspx.cs上调用JavaScript函数(在aspx中),javascript,asp.net,.net,webforms,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="ser

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

您可以通过以下方式从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页面,带有以下表单标签:Line 编号供参考

1. <form id="Form1" runat="server">
2. ..
3. ..
4. ..
5. </form>
现在让我们看看每种方法的关键区别:

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

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

C。 Page.RegisterClientScriptBlock应用于 不需要在页面加载时运行。 必须运行的脚本应使用Page.RegisterStartupScript 在页面加载时

D。 Page.RegisterClientScriptBlock应用于 不要求已创建表单元素。 Page.RegisterStartupScript应用于需要 表单元素已创建并使用对它们的引用

请注意,所有4个差异本质上都与每个差异相关 其他的则是建立在上一个基础上。一差别放在一行 有时可能太微妙了


您可以通过以下方式从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页面,带有以下表单标签:Line 编号供参考

1. <form id="Form1" runat="server">
2. ..
3. ..
4. ..
5. </form>
现在让我们看看每种方法的关键区别:

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

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

C。 Page.RegisterClientScriptBlock应用于 不需要在页面加载时运行。 必须运行的脚本应使用Page.RegisterStartupScript 在页面加载时

D。 Page.RegisterClientScriptBlock应用于 不要求已创建表单元素。 Page.RegisterStartupScript应用于需要 表单元素已创建并使用对它们的引用

请注意,所有4个差异本质上都与每个差异相关 其他的则是建立在上一个基础上。一差别放在一行 有时可能太微妙了


您可以从中了解更多信息,并且可以添加一个脚本,该脚本将在页面加载到浏览器时执行:

Page.RegisterStartupScript("unique_key", "<script type=\"text/javascript\">NewPage()</script>"); // but this is deprecated function
但是,如果您只是想执行重定向,正如我从NewPage函数中看到的那样,您可以执行以下操作:

Response.Redirect("http://www.example.com");

您可以添加一个脚本,该脚本将在页面加载到浏览器时执行:

Page.RegisterStartupScript("unique_key", "<script type=\"text/javascript\">NewPage()</script>"); // but this is deprecated function
但是,如果您只是想执行重定向,正如我从NewPage函数中看到的那样,您可以执行以下操作:

Response.Redirect("http://www.example.com");

javascript函数应该做什么?实际上,您不能在服务器端运行JS。但当服务器返回整个HTML时,您可以准备在客户端执行它。您是说您只想更改document.location吗?我可以在服务器上运行JS,但在此之前我还有更多的JS要调用。我的第一个JS获取facebook的令牌,我需要将该令牌保存在DB上。谢谢,我不知道在服务器上运行JS是什么意思,如果你已经知道答案,为什么要问怎么做,但据我所知,你是在用JS做标记。一旦你有了它,你就可以运行AJAX调用服务器,服务器将把它放入数据库。有了你的viewFAngel,我想改变我的方案,我将尝试在aspx.cson服务器位置上生成所有JS代码,并通过AJAX或其他方式获取令牌。感谢javascript函数应该做什么?实际上,您不能在服务器端运行JS。但当服务器返回整个HTML时,您可以准备在客户端执行它。您是说您只想更改document.location吗?我可以在服务器上运行JS,但在此之前我还有更多的JS要调用。我的第一个JS获取facebook的令牌,我需要将该令牌保存在DB上。谢谢,我不知道在服务器上运行JS是什么意思,如果你已经知道答案,为什么要问怎么做,但据我所知,你是在用JS做标记。一旦你有了它,你就可以运行AJAX调用服务器,服务器将把它放入数据库。有了你的viewFAngel,我想改变我的方案,我将尝试在aspx.cson服务器位置上生成所有JS代码,并通过AJAX或其他方式获取令牌。谢谢没有??它只是一个随机的唯一字符串。它很方便,以防你
正在注册多个ClientScriptBlocksit的工作但不是全部,不工作此方法:document.location.href=oh no??它只是一个随机的唯一字符串。如果您正在注册多个ClientScriptBlocksit的工作,而不是全部工作,则此方法非常方便:document.location.href=