不用AJAX实现前台JS调用后台C#方法(小技巧) (转)
一提到如何在前台JS调用后台C#方法,AJAX成为了必然的想法。
只是实现的细节采用AJAX 1.0或者AjaxPro的区别。
其实如果不用AJAX,我们也能够很方便地利用JS调用后台方法。
步骤如下:
1 前台放一个按钮。设置为隐藏。注意:不能直接设置Visible=false的方式,这样的话在ASP.Net 2.0编译后的代码里是找不到这个按钮的。需要设置风格:style="display:none;"
2 双击按钮,写入C#方法,或者写一个调用后台其他方法的代码段
3 前台JS调用的时候,照如下写,这样可以模拟按钮的点击事件,触发后台方法:
document.getElementById("Button2").click();
示例
ASP.Net页: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head runat="server">
<head runat="server">
 <title>Untitled Page</title>
    <title>Untitled Page</title>

 <script>
    <script>
 function go()
    function go()
 {
    {
 document.getElementById("Button2").click();
        document.getElementById("Button2").click();
 }
    }
 </script>
    </script>

 </head>
</head>
 <body>
<body>
 <form id="form1" runat="server">
    <form id="form1" runat="server">
 <div>
        <div>
 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
 <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="go();return false;" />
            <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="go();return false;" />
 <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" Style="display: none;" />
            <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" Style="display: none;" />
 </div>
        </div>
 </form>
    </form>
 </body>
</body>
 </html>
</html>
 
 using System;
using System;
 using System.Data;
using System.Data;
 using System.Configuration;
using System.Configuration;
 using System.Web;
using System.Web;
 using System.Web.Security;
using System.Web.Security;
 using System.Web.UI;
using System.Web.UI;
 using System.Web.UI.WebControls;
using System.Web.UI.WebControls;
 using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts;
 using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls;
 using System.Text;
using System.Text;

 public partial class _Default : System.Web.UI.Page
public partial class _Default : System.Web.UI.Page 
 {
{
 protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e)
 {
    {

 
       
 }
    }

 protected void Button2_Click(object sender, EventArgs e)
    protected void Button2_Click(object sender, EventArgs e)
 {
    {
 this.SayHello();
        this.SayHello();
 }
    }

 private void SayHello()
    private void SayHello()
 {
    {
 this.TextBox1.Text = "你好,何奎!";
        this.TextBox1.Text = "你好,何奎!";
 }
    }
 }
}
只是实现的细节采用AJAX 1.0或者AjaxPro的区别。
其实如果不用AJAX,我们也能够很方便地利用JS调用后台方法。
步骤如下:
1 前台放一个按钮。设置为隐藏。注意:不能直接设置Visible=false的方式,这样的话在ASP.Net 2.0编译后的代码里是找不到这个按钮的。需要设置风格:style="display:none;"
2 双击按钮,写入C#方法,或者写一个调用后台其他方法的代码段
3 前台JS调用的时候,照如下写,这样可以模拟按钮的点击事件,触发后台方法:
document.getElementById("Button2").click();
示例
ASP.Net页:
 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">
<head runat="server"> <title>Untitled Page</title>
    <title>Untitled Page</title>
 <script>
    <script> function go()
    function go() {
    { document.getElementById("Button2").click();
        document.getElementById("Button2").click(); }
    } </script>
    </script>
 </head>
</head> <body>
<body> <form id="form1" runat="server">
    <form id="form1" runat="server"> <div>
        <div> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
            <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="go();return false;" />
            <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="go();return false;" /> <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" Style="display: none;" />
            <asp:Button ID="Button2" runat="server" Text="Button" OnClick="Button2_Click" Style="display: none;" /> </div>
        </div> </form>
    </form> </body>
</body> </html>
</html>
后台C#:
 using System;
using System; using System.Data;
using System.Data; using System.Configuration;
using System.Configuration; using System.Web;
using System.Web; using System.Web.Security;
using System.Web.Security; using System.Web.UI;
using System.Web.UI; using System.Web.UI.WebControls;
using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts;
using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls;
using System.Web.UI.HtmlControls; using System.Text;
using System.Text;
 public partial class _Default : System.Web.UI.Page
public partial class _Default : System.Web.UI.Page  {
{ protected void Page_Load(object sender, EventArgs e)
    protected void Page_Load(object sender, EventArgs e) {
    {
 
        }
    }
 protected void Button2_Click(object sender, EventArgs e)
    protected void Button2_Click(object sender, EventArgs e) {
    { this.SayHello();
        this.SayHello(); }
    }
 private void SayHello()
    private void SayHello() {
    { this.TextBox1.Text = "你好,何奎!";
        this.TextBox1.Text = "你好,何奎!"; }
    } }
} 
                    
                

 
     
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号