webform 前台按钮调用后台方法_webform后台调用前台js - CSDN
精华内容
参与话题
  • Jquery Ajax调用aspx页面方法 在asp.net webform开发中,用jQuery ajax传值一般有几种玩法 1)普通玩法:通过一般处理程序ashx进行处理; 2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理; 3)文艺...

    Jquery Ajax调用aspx页面方法

    在asp.net webform开发中,用jQuery ajax传值一般有几种玩法

    1)普通玩法:通过一般处理程序ashx进行处理;

    2)高级玩法:通过aspx.cs中的静态方法+WebMethod进行处理;

    3)文艺玩法:通过WCF进行处理。

    第一种和第三种方法不在本文介绍范围之内,下面重点介绍第二种方法。

    说明

    在我们的印象里 asp.net的Web服务是以.asmx来结尾的,而我们现在的asp.net也能实现Web服务,这是因为默认Web.config中已经添加了System.Web.Handlers.ScriptModule,它是用于管理asp.net中ajax功能的HTTP模块,这样不管用户是请求.asmx文件还是.aspx文件,都会通过此处理程序来处理请求。

    后台代码:

    复制代码
    using System.Web.Services; //引入命名空间
    
    [WebMethod]
    public static string SayHello()
    {
        return "Hello Ajax!";
    }
    复制代码

    前台页面代码:

    <form id="form1" runat="server">
    <div>
        <asp:Button ID="btn" runat="server" Text="验证用户" />
    </div>
    </form>

    Javascript代码:

    复制代码
    $(function() {     
        $("#btn").click(function() {     
            $.ajax({              
                type: "post", //要用post方式                 
                url: "Demo.aspx/SayHello",//方法所在页面和方法名
                contentType: "application/json; charset=utf-8",     
                dataType: "json",     
                success: function(data) {                    
                    alert(data.d);//返回的数据用data.d获取内容
                },
                error: function(err) {     
                    alert(err);     
                }     
            });
        });     
    });
    复制代码

     

    效果:

    需要注意的地方

    一、data参数写法

    复制代码
    //1)普通写法,JSON键值对,如:单个参数的
    data:"{newsID:"+ id +"}",
    //多个参数的形式:
    data:"{newsID:"+ newsID +",name:"+ name +"}",
    //2)文艺写法:各种引号,双引号,单引号拼接,如
    //单个参数写法:
    data:"{'name':'"+ name +"'}",
    //多个参数写法:
    data: "{'content':'" + $("#content").val() + "','createTime':'" + $("#createTime").val() + "','creator':'" + $("#creator").val() + "'}"
    //容易出错!!!!!
    复制代码

    二、用QueryString传值是后台取不到的问题

    在WebMethod()方法中,是不能通过 HttpContext.Current.QueryString.Get("id")来获取query string,
    因为在WebMethod()默认是用POST方法提交的,而用GetQueryString是不能取到值的。
    替代方法是用JS获取url中的参数,用ajax提交给后台方法是用:
    复制代码
    < script type = "text/javascript" >
        function getArgs(strParame) {
            var args = new Object();
            var query = location.search.substring(1); // Get query string
            var pairs = query.split("&"); // Break at ampersand
            for (var i = 0; i < pairs.length; i++) {
                var pos = pairs[i].indexOf('='); // Look for "name=value"
                if (pos == -1) continue; // If not found, skip
                var argname = pairs[i].substring(0, pos); // Extract the name
                var value = pairs[i].substring(pos + 1); // Extract the value
                value = decodeURIComponent(value); // Decode it, if needed
                args[argname] = value; // Store as a property
            }
            return args[strParame]; // Return the object
    } < /script>
    复制代码

    三、时间问题

    复制代码
    WCF 或 模拟Web服务处理JSON时返回时间格式问题。解决方法如下:
    
    // 杂乱的时间
    var rawDate = "/Date(1347120000000+0800)/";
    // 提取时间字符串
    var strDate = rawDate.substr(6, 13);
    // 把时间字符串转化成int类型
    var intDate = parseInt(strDate);
    // 构造一个Date对象
    var newDate = new Date(intDate);
    // 将时间转化成当地时间格式
    var myDate = newDate.toLocaleDateString();
    // 最终结果
    alert(myDate);
    
    // 合并成一句
    var resultDate = new Date(parseInt("/Date(1347120000000+0800)/".substr(6, 13))).toLocaleDateString();
    复制代码

    四、$.ajax参数详解

    复制代码
    //标准的写法:
    $.ajax({
         type: "post",
         dataType: "json",
         contentType: "application/json", //注意:WebMethod()必须加这项,否则客户端数据不会传到服务端
         data:{如上所述},//注意:data参数可以是string个int类型
         url: "List.aspx/DeleteNews",//模拟web服务,提交到方法
         // 可选的 async:false,阻塞的异步就是同步
         beforeSend:function(){
              // do something.
              // 一般是禁用按钮等防止用户重复提交
              $("#btnClick").attr({disabled:"disabled"});
              // 或者是显示loading图片
         },
         success: function (data) {
              alert("success: " + data.d);//注意这里:必须通过data.d才能获取到服务器返回的值
              // 服务端可以直接返回Model,也可以返回序列化之后的字符串,如果需要反序列化:string json = JSON.parse(data.d);
              // 有时候需要嵌套调用ajax请求,也是可以的
         },
         complete: function(){
              //do something.
              $("#btnClick").removeAttr("disabled");
              // 隐藏loading图片
         },
         error: function (data) {
              alert("error: " + data.d);
         }
    });
    展开全文
  • 网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数据,然后将数据传给前台来显示出来(当然可以将后台... 下面就讲前台与后台进行数据交互的方法,分前台调用后台方法与变量;台调用前台js代

    除了下文讲的方式外,还有一种方式:html里面使用ajax写好提交方式和提交参数,然后以写一行带有.aspx文件格式的语句跳转到后台(以.config文件为桥梁跳转,其中会指定后台处理程序在哪里),直接到后台的handler里面去处理,会自动开始执行ProcessRequest等函数

    下文来自:http://blog.csdn.net/wang379275614/article/details/17033981  

        网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数据,然后将数据传给前台来显示出来(当然可以将后台代码嵌入到前台)。即:

      


      下面就讲前台与后台进行数据交互的方法,分前台调用后台方法与变量;台调用前台js代码。本文先介绍前者,后者在后面文章中介绍。


    前台调用后台方法与变量:


    方法一:通过WebService来实现

    步骤:

    后台

    Ø  首先引入命名空间(using System.Web.Services;)

    Ø  然后定义公共的静态的方法(必须为public和static的,且静态方法不能访问外部的非静态变量,此时后台与前台相当于父类与子类的关系),并在该方法头部上加上[System.Web.Services.WebMethod],来标注方法特性。

    前台

    Ø  添加ScriptManager服务器控件,并把其EnablePageMethods属性设为true。

    Ø  通过PageMethods方法调用后台定义的public、static方法

     

    PageMethods方法简介:

    PageMethods.FunctionName(Paramter1,Parameter2,...,funRight,funError, userContext);

    1)      Paramter1,Parameter2,...,表示的是FunctionName的参数,类型是Object或Array; 

    2)      funRight是方法调用成功后的回调函数,对返回值进行处理

    3)      funError是当后台的FunctionName方法发生异常情况下的执行的Js方法(容错处理方法), 

    4)      userContext是可以传递给SuccessMethod方法,或是FailedMethod方法的任意内容。

    举例:

    后台代码:


      

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Web;  
    5. using System.Web.UI;  
    6. using System.Web.UI.WebControls;  
    7. using System.Web.Services;  
    8. namespace WebApplication4  
    9. {  
    10.     public partial class WebForm10 : System.Web.UI.Page  
    11.     {  
    12.         protected void Page_Load(object sender, EventArgs e)  
    13.         {  
    14.   
    15.         }  
    16.         [WebMethod]  
    17.         public static string test1(string userName)  
    18.         {  
    19.             return "hello "+userName+", 这是通过WebService实现前台调用后台方法";  
    20.         }  
    21.     }  
    22. }  


    前台代码:


      

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm10.aspx.cs" Inherits="WebApplication4.WebForm10" %>  
    2. <!DOCTYPE html>  
    3. <html xmlns="http://www.w3.org/1999/xhtml">  
    4. <head runat="server">  
    5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
    6.     <title></title>  
    7. </head>  
    8. <body>  
    9.     <form id="form1" runat="server">  
    10.         <%--引入ScriptManager服务器控件--%>  
    11.         <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>  
    12.         <script type="text/javascript">  
    13.             function bclick() {  
    14.                 PageMethods.test1("zhipeng", funRight);  
    15.             }  
    16.   
    17.             function funRight(val)       //回调函数,用val接受后台代码test1的执行结果    
    18.             {  
    19.                 alert(val);               
    20.             }  
    21.         </script>  
    22.         <input id="Button1" type="button" value="方法测试" onclick="bclick()" />//点击按钮会弹出对话框“通过WebService实现前台调用后台方法”  
    23.     </form>  
    24. </body>  
    25. </html>  


    点击按钮弹出如下对话框:


      



    方法二:通过<%=methodname()%><%#methodname()%>methodname()为后台定义的方法)

    这种方法调用的后台方法可能出现在前台的位置有3种情况:

    1)     服务器端控件或HTML控件的属性

    2)     客户端js代码中

    3)     Html显示内容的位置(它作为占位符把变量显示于符号出现的位置)

    这里对两者做简单实例,详细内容在后面文章中介绍

    步骤:

    后台

    Ø  定义public或protected的变量或方法(不能为private)

    前台

    Ø  直接用<%= %>和<%# %>对后台变量或方法进行调用,两者的用法稍有差异(<%# %>基本上能实现<%= %>的所以功能)

    举例:

    后台代码:


      

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Web;  
    5. using System.Web.UI;  
    6. using System.Web.UI.WebControls;  
    7.   
    8. namespace WebApplication4  
    9. {  
    10.     public partial class WebForm1 : System.Web.UI.Page  
    11.     {  
    12.         public string name = "我是后台变量";  
    13.         protected void Page_Load(object sender, EventArgs e)  
    14.         {  
    15.             this.DataBind();  
    16.              
    17.         }  
    18.         //不能为private  
    19.         protected string strTest() {  
    20.             return "这是前台通过<%# %>调用后台方法";  
    21.         }  
    22.         public void  strTest2()  
    23.         {  
    24.             Response.Write("这是前台通过<%= %>调用后台方法");  
    25.         }  
    26.   
    27.     }  
    28. }  


    前台代码:


      

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication4.WebForm1" %>  
    2.   
    3. <!DOCTYPE html>  
    4.   
    5. <html xmlns="http://www.w3.org/1999/xhtml">  
    6. <head runat="server">  
    7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
    8.     <title></title>  
    9.   
    10. </head>  
    11. <body>  
    12.   
    13.     <form id="form1" runat="server">  
    14.     <div>  
    15.         <b>服务器控件</b><br /><br />  
    16.         服务器端文本框绑定后台方法:<asp:TextBox ID="TextBox1" runat="server" Text="<%#strTest()%>"></asp:TextBox><%=strTest()%><br />   
    17.         ......................变量:<asp:TextBox ID="TextBox2" runat="server" Text="<%#name%>"></asp:TextBox><br />   
    18.         服务器端文本框绑定后台方法:<asp:Label ID="Label1" runat="server" Text="Label"><%=strTest()%></asp:Label><br />  
    19.         服务器端文本框绑定后台方法:<asp:Label ID="Label2" runat="server" Text="<%#strTest() %>"></asp:Label><br /><br />  
    20.   
    21.         <br /><br />  
    22.         <b>客户端控件</b><br /><br />  
    23.         客户端文本框绑定后台方法:<input id="Text1" type="text" value="<%#strTest()%>" /><%=name %><br />           
    24.         客户端标签: <div><%=strTest() %></div>  
    25.          
    26.     </div>  
    27.     </form>  
    28. </body>  
    29. </html>  


    运行结果:


      


    <%=methodname()%>和<%#methodname()%>两种方式的详细介绍(联系与区别)会在后面文章中详细介绍。


    方法三:通过隐藏服务端按钮来实现

    后台代码:


      

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.Linq;  
    4. using System.Web;  
    5. using System.Web.UI;  
    6. using System.Web.UI.WebControls;  
    7.   
    8. namespace WebApplication4  
    9. {  
    10.     public partial class WebForm11 : System.Web.UI.Page  
    11.     {  
    12.         protected void Button1_Click(object sender, EventArgs e)  
    13.         {  
    14.             Response.Write("这是通过隐藏控件方式实现前台访问后台方法");  
    15.         }  
    16.     }  
    17. }  


    前台代码:


      

    [html] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm11.aspx.cs" Inherits="WebApplication4.WebForm11" %>  
    2.   
    3. <!DOCTYPE html>  
    4.   
    5. <html xmlns="http://www.w3.org/1999/xhtml">  
    6. <head runat="server">  
    7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
    8.     <title></title>  
    9.     <script type="text/javascript" >  
    10.         function test() {  
    11.             //通过客户端脚本选中隐藏控件,并调用后台相关方法  
    12.             document.getElementById("Button1").click();  
    13.         };  
    14.     </script>  
    15. </head>  
    16.   
    17. <body>  
    18.     <form id="form1" runat="server">  
    19.         <%--隐藏服务端铵钮--%>  
    20.         <asp:Button ID="Button1" runat="server" Text="Button" style="display:none"  />  
    21.         <%--调用客户端脚本,间接调用后台方法--%>  
    22.         <input id="Button2" type="button" value="button" onclick="test()" />  
    23.     </form>  
    24. </body>  
    25. </html>  


    总结:

      方法一的后台方法必须声明为public和static(否则会发生PageMethods未定义错误),正是由于要将方法声明为static,使得这两种方法都有局限性,即静态方法中只允许访问静态成员变量。所以要想用这两种方式调用后台方法,后台方法中是不能访问非静态成员变量的。

      方法二,后台方法没有任何限制,但是前台调用的时候由于<%=%>是只读的,<%=%>适合于调用后台方法经过处理并返回给客户端使用,不适合于将数据传到后台供后台使用

      后面会讲后台调用前台js代码。。。

    展开全文
  • js前台后台数据交互-前台后台

    万次阅读 多人点赞 2013-11-30 10:18:10
    由于网络太差,只能等稍后好点了再发表正文(由于文中有图片,内容多,发表多次都未成功)

     

      网站是围绕数据库来编程的,以数据库中的数据为中心,通过后台来操作这些数据,然后将数据传给前台来显示出来(当然可以将后台代码嵌入到前台)。即:


      


      下面就讲前台与后台进行数据交互的方法,分前台调用后台方法与变量;台调用前台js代码。本文先介绍前者,后者在后面文章中介绍。


    前台调用后台方法与变量:


    方法一:通过WebService来实现

    步骤:

    后台

    Ø  首先引入命名空间(using System.Web.Services;)

    Ø  然后定义公共的静态的方法(必须为public和static的,且静态方法不能访问外部的非静态变量,此时后台与前台相当于父类与子类的关系),并在该方法头部上加上[System.Web.Services.WebMethod],来标注方法特性。

    前台

    Ø  添加ScriptManager服务器控件,并把其EnablePageMethods属性设为true。

    Ø  通过PageMethods方法调用后台定义的public、static方法

     

    PageMethods方法简介:

    PageMethods.FunctionName(Paramter1,Parameter2,...,funRight,funError, userContext);

    1)      Paramter1,Parameter2,...,表示的是FunctionName的参数,类型是Object或Array; 

    2)      funRight是方法调用成功后的回调函数,对返回值进行处理

    3)      funError是当后台的FunctionName方法发生异常情况下的执行的Js方法(容错处理方法), 

    4)      userContext是可以传递给SuccessMethod方法,或是FailedMethod方法的任意内容。

    举例:

    后台代码:


      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.Services;
    namespace WebApplication4
    {
        public partial class WebForm10 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
    
            }
            [WebMethod]
            public static string test1(string userName)
            {
                return "hello "+userName+", 这是通过WebService实现前台调用后台方法";
            }
        }
    }


    前台代码:


      

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm10.aspx.cs" Inherits="WebApplication4.WebForm10" %>
    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
            <%--引入ScriptManager服务器控件--%>
            <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"></asp:ScriptManager>
            <script type="text/javascript">
                function bclick() {
                    PageMethods.test1("zhipeng", funRight);
                }
    
                function funRight(val)       //回调函数,用val接受后台代码test1的执行结果  
                {
                    alert(val);             
                }
            </script>
            <input id="Button1" type="button" value="方法测试" οnclick="bclick()" />//点击按钮会弹出对话框“通过WebService实现前台调用后台方法”
        </form>
    </body>
    </html>
    


    点击按钮弹出如下对话框:


      



    方法二:通过<%=methodname()%><%#methodname()%>methodname()为后台定义的方法)

    这种方法调用的后台方法可能出现在前台的位置有3种情况:

    1)     服务器端控件或HTML控件的属性

    2)     客户端js代码中

    3)     Html显示内容的位置(它作为占位符把变量显示于符号出现的位置)

    这里对两者做简单实例,详细内容在后面文章中介绍

    步骤:

    后台

    Ø  定义public或protected的变量或方法(不能为private)

    前台

    Ø  直接用<%= %>和<%# %>对后台变量或方法进行调用,两者的用法稍有差异(<%# %>基本上能实现<%= %>的所以功能)

    举例:

    后台代码:


      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication4
    {
        public partial class WebForm1 : System.Web.UI.Page
        {
            public string name = "我是后台变量";
            protected void Page_Load(object sender, EventArgs e)
            {
                this.DataBind();
               
            }
            //不能为private
            protected string strTest() {
                return "这是前台通过<%# %>调用后台方法";
            }
            public void  strTest2()
            {
                Response.Write("这是前台通过<%= %>调用后台方法");
            }
    
        }
    }


    前台代码:


      

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication4.WebForm1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    
    </head>
    <body>
    
        <form id="form1" runat="server">
        <div>
            <b>服务器控件</b><br /><br />
            服务器端文本框绑定后台方法:<asp:TextBox ID="TextBox1" runat="server" Text="<%#strTest()%>"></asp:TextBox><%=strTest()%><br /> 
            ......................变量:<asp:TextBox ID="TextBox2" runat="server" Text="<%#name%>"></asp:TextBox><br /> 
            服务器端文本框绑定后台方法:<asp:Label ID="Label1" runat="server" Text="Label"><%=strTest()%></asp:Label><br />
            服务器端文本框绑定后台方法:<asp:Label ID="Label2" runat="server" Text="<%#strTest() %>"></asp:Label><br /><br />
    
            <br /><br />
            <b>客户端控件</b><br /><br />
            客户端文本框绑定后台方法:<input id="Text1" type="text" value="<%#strTest()%>" /><%=name %><br />         
            客户端标签: <div><%=strTest() %></div>
           
        </div>
        </form>
    </body>
    </html>
    


    运行结果:


      


    <%=methodname()%>和<%#methodname()%>两种方式的详细介绍(联系与区别)会在后面文章中详细介绍。


    方法三:通过隐藏服务端按钮来实现

    后台代码:


      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    namespace WebApplication4
    {
        public partial class WebForm11 : System.Web.UI.Page
        {
            protected void Button1_Click(object sender, EventArgs e)
            {
                Response.Write("这是通过隐藏控件方式实现前台访问后台方法");
            }
        }
    }


    前台代码:


      

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm11.aspx.cs" Inherits="WebApplication4.WebForm11" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
        <script type="text/javascript" >
            function test() {
                //通过客户端脚本选中隐藏控件,并调用后台相关方法
                document.getElementById("Button1").click();
            };
        </script>
    </head>
    
    <body>
        <form id="form1" runat="server">
            <%--隐藏服务端铵钮--%>
            <asp:Button ID="Button1" runat="server" Text="Button" style="display:none"  />
            <%--调用客户端脚本,间接调用后台方法--%>
            <input id="Button2" type="button" value="button" οnclick="test()" />
        </form>
    </body>
    </html>
    


    总结:

      方法一的后台方法必须声明为public和static(否则会发生PageMethods未定义错误),正是由于要将方法声明为static,使得这两种方法都有局限性,即静态方法中只允许访问静态成员变量。所以要想用这两种方式调用后台方法,后台方法中是不能访问非静态成员变量的。

      方法二,后台方法没有任何限制,但是前台调用的时候由于<%=%>是只读的,<%=%>适合于调用后台方法经过处理并返回给客户端使用,不适合于将数据传到后台供后台使用

      后面会讲后台调用前台js代码。。。

    展开全文
  • Ajax调用后台方法的几种写法(一)

    万次阅读 2012-12-13 14:54:59
    第一种如下:Js部分: var loadingDialog = $('Please wait for a little while.'); function bsl_showLoadingDialog(title) { loadingDialog.dialog({ modal:
    第一种如下:Js部分:
     <script language="javascript" type="text/javascript" src="JScripts/jquery-1.8.3.js"></script>
        <script language="javascript" type="text/javascript" src="JScripts/jquery-ui-1.9.2.custom.min.js"></script>
        <link type="text/css" rel="Stylesheet" href="Css/jquery-ui-1.9.2.custom.min.css" />
        <script language="javascript" type="text/javascript">
            var loadingDialog = $('<div id="dialog" title="" width="100%"><p class="center"><img src="Images/loading.gif"/></p><br/><p class="center">Please wait for a little while.</p></div>');
            function bsl_showLoadingDialog(title) {
                loadingDialog.dialog({
                    modal: true,
                    title: title,
                    width: 400,
                    height: 300,
                    closeOnEscape: false,
                    resizable: false
                });
                loadingDialog.parent().find('.ui-dialog-titlebar-close').hide();
            }
    
            $(function () {
                $("#btnOK").click(function () {
    
                    $.ajax({
                        type: "POST",
                        async:true,
                        url: "WebForm1.aspx/TestAjax",    //必须是后台的静态方法
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        //  data: "name=John&location=Boston",
                        data:"",
                        beforeSend: function () {
                            bsl_showLoadingDialog("请稍等");
                        },
                        success: function (msg) {
                            $(loadingDialog).dialog("close");
                            alert("Data Saved: " + msg.d);
                        },
                        error: function (err) {
                            $(loadingDialog).dialog("close");
                            alert(err);
                        }
                    });
                    //禁用按钮的提交 
                    return false;
                });
            });
        </script>
    页面部分:
      <asp:Button ID="btnOK" runat="server" Text="验证用户"  /> 
    后台方法:
      [WebMethod]//从前台调用必须是static方法,且必须加WebMethod
            public static string TestAjax()
            {
              //  lblName.Text = "Hello, Async";
                WebForm1 webForm = new WebForm1();
                if (webForm.lblName != null)   //此处的lblName(Label)为null值,这个方法放在WebForm1的类中
                {
                    webForm.lblName.Text = "Hello,Async";
                }
               Thread.Sleep(3000);
                return "true";
            }

    局限性:后台的方法必须是静态的,导致就无法使用页面中其他的控件,无法给其他控件赋值。
    展开全文
  • .Net后台获取前台input控件值方法

    千次阅读 2013-07-10 15:07:30
    以textbox为例 默认的添加input控件只有id属性,想在后台使用input控件值需要添加name属性:   后台调用:  string value = Request.Form["txt"].ToString();
  • C# WebForm

    千次阅读 2014-03-04 13:59:19
    什么是WebForm常用控件。 WebForm控件是如何解析成为HTML表单的。 WebForm优点。 WebForm缺点。 我使用WebForm常常烦的错误。
  • 一、前台调用后台 1、前台调用后台变量(注:...2、前台调用后台方法(即Ajax,见Jquery,绑定到按钮的Click) 二、后台调用前台 1、后台使用前台的变量  方法一: 1、前台使用静态文本控件隐藏域,将js变量值写入其中
  • 前台访问后台的几种方法

    千次阅读 2013-12-05 23:25:11
    public static方法,ajax/PageMethods调用。 test.cs [WebMethod] public static string GetUserName() { //...... } 需要访问操作session时 [WebMethod(EnableSession = true)]//或[WebMethod(true)] public
  • webform中使用javascript触发后台事件

    千次阅读 2017-11-01 13:12:33
    一、前台 document.getElementById("Button1").click(); 后台代码 protected void Button1_Click(object sender, EventArgs e)  {   Response.Write("模拟点击");  } 二、 <asp
  • 网速不给力啊,只能稍后补正文了。。
  • 最近在做项目时,遇到了js库里调用后台的变量和函数的问题,一开始不知道咋办,google了很多。 1.封装成JavaScript库,其中调用后台C#变量:  网上有三种基本方法:  方法一:1、通过页面上隐藏域访问 方法二:1...
  • 使用插件Ajax.dll或者AjaxPro.dll。咱使用了Ajax.dll,需先去网上下载Ajax.dll,然后引用到项目中,并在Web.Config中配置如下: ... //这个方法用户接受并处理服务器端返回的结果。 function ge
  • 【ASP.NET】Webform与MVC开发比较

    千次阅读 热门讨论 2016-01-20 18:39:35
    去年暑假开始,跟着一个项目,开始接触到了MVC,那时候,自己对Webform的开发还没有在项目中真正实践过,没有什么过渡,就跳跃到MVC开发下了。而最近,在维护的一个项目中,并没有使用MVC开发,用的是Webform开发。...
  • 2.探究aspbutton的 OnClick和OnClientClick ...打开VS,新建asp.net空项目,添加web窗体WebForm1 . 在form段添加一个html input button 和 一个 asp button 代码如下: <input id="HtmlBtn" type="bu...
  • asp.net WebForm 事件响应模型

    千次阅读 2016-03-29 14:48:29
    当我们新建一个ASP.NET的应用程序时,会默认生成一个Default.aspx和Default.aspx.cs页面。 在Default.aspx的页面中第一行是一条页面指令: t" %> 其中CodeBehind属性指定代码隐藏页面的名称,Inherits指定所属的...
  • 一般处理程序也是实现了IhttpHandler接口的类,实现了接口的ProcesRequest()方法。 相同点: (1)都实现了接口,都可以进行用户请求的操作 (2)都可以处理静态和动态页面 不同点 (1)一般处理程序处理动态页面的...
  • 第一种:前台接收 dataType: "json",  success: function (data) {  var varReceiver = data;  。。。。。。。。。  } @ Page Language="C#" AutoEventW
  • asp.net利用Ajax和Jquery在前台后台传参数并返回值,通过aspx.cs中的静态方法WebMethod进行处理 后台代码: using System.Web.Services; //引入命名空间 [WebMethod] public static string SayHello() {  ...
1 2 3 4 5 ... 20
收藏数 694
精华内容 277
关键字:

webform 前台按钮调用后台方法