欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » ASP.Net » 正文

热门阅读

C#实现前台与后台方法互调

创建时间:2011年06月16日 22:55  阅读次数:(5435)
分享到:
前台与后台方法互调是很多读者关心的功能。下面提供的代码,可以实现C#前台与后台方法互调的目的。
<%@ Page Language="C#"AutoEventWireup="true"CodeFile="JavaScript get Net Function.aspx.cs"Inherits="JavaScript_get_Net_Function" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
    <title>前台与后台方法护调总结</title>
    <%--
        JavaScript异步调用定义在ASP.Net页面中的方法, 我们需要:
            1.将该方法声明为公有(public);
            2.将该方法声明为类方法(C#中的static,VB.NET中的Shared),而不是实例方法;
            3.将该方法添加【WebMethod】属性
            4.将页面中ScriptManager控件的EnablePageMethods属性设置为true;
            5.在客户端使用如下JavaScript语法调用该页面方法
                PageMethods.[MethodName](param1,param2,...,callbackFunction);
            6.为客户端异步调用指定回调函数,在回调函数中接受返回值并进一步处理;
            7.添加 using System.Web.Services;
    --%>
   
    <%--
        ASP.Net后台调用JavaScript function的方法,我们要注意:
            1.尽量少用Response.Write(<script></script>);这种方法,它会影响CSS导致页面效果偏差
            2.C#中使用ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "JS('"+param1+"','"+param2+"')", true);
            3.添加 using System.Web.UI;
    --%>
  
    <scripttype="text/javascript">
  
/*-------------JavaScript调用.Net后台Start----------------------------------*/
        function JsCallCSharp(param1)
        {
            PageMethods.SayHelloFromPage(param1,onSayHelloSucceeded);
        }
       
        function onSayHelloSucceeded(result)
        {
            alert(result);
        }
/*-------------JavaScript调用.Net后台End----------------------------------*/
       
/*-------------.Net调用JavaScript Start-----------------------------------*/
        function CSharpCallJs(param1,param2)
        {
            alert(param1 + param2);
        }
/*-------------.Net调用JavaScript Start-----------------------------------*/
    </script>
   
</head>
<body>
    <formid="form1"runat="server">
    <div>
        <asp:ScriptManagerID="ScriptManager1"EnablePageMethods="true"runat="server"/>
    </div>
   
    <asp:ButtonID="Button1"onclick="Button1_Click"OnClientClick="JsCallCSharp('takako');"runat="server"Text="Button1"/>
   
    </form>
</body>
</html>

前台与后台方法互调的C#代码

using System;
using System.Web.Services;
using System.Web.UI;

public partial class JavaScript_get_Net_Function : System.Web.UI.Page
{
    protectedvoid Page_Load(object sender, EventArgs e)
    {

    }

    protectedvoid Button1_Click(object sender, EventArgs e)
    {
        string param1 = "你好:";
        string param2 = "takako_mu";
        ScriptManager.RegisterStartupScript(this, this.GetType(), "edit", "CSharpCallJs('" + param1 + "','" + param2 + "');", true);
    }

    [WebMethod]
    publicstaticstring SayHelloFromPage(string name)
    {
        returnstring.Format("Hello {0}!", name);
    }
}
b
来源:
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 38+73=? 的结果(结果是:111)
结  果: