1. JS调用后台方法大全

    javascript函数中执行C#代码中的函数:
    方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;
    2、在前台写一个js函数,内容为document.getElementById("btn1").click();
    3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

    方法二:1、函数声明为public
    后台代码(把public改成protected也可以)
    publicstringss()
    {
    return("a");
    }
    2、在html里用<%=fucntion()%>可以调用
    前台脚本
    <script language=javascript>
    var a="<%=ss()%>";
    alert(a);
    </script>
    方法三:1、<script language="javascript">
    <!--
    function __doPostBack(eventTarget, eventArgument)
    {
    var theForm=document.Form1;//指runat=server的form
    theForm.__EVENTTARGET.value=eventTarget;
    theFrom.__EVENTARGUMENT.value=eventArgument;
    theForm.submit();
    }
    -->
    </script>
    <input id="Button1"type="button"name="Button1"value="按钮"onclick="javascript:__doPostBack('Button1','')">

    方法四:<script language="javascript">
    function SubmitKeyClick()
    {
    if(event.keyCode==13)
    {
    event.cancelBubble=true;
    event.returnValue=false;
    document.all.FunName.value="你要调用的函数名";
    document.form[0].submit();
    }
    }
    </script>

    <INPUT onkeypress="SubmitKeyClick()"id="aaa"type="text">
    <input type="hidden"name="FunName">〈!--用来存储你要调用的函数--〉

    在.CS里有:
    publicPage_OnLoad()
    {
    if(!Page.IsPost())
    {
    stringstrFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
    //根据传回来的值决定调用哪个函数
    switch(strFunName)
    {
    case"enter()":
    enter() ; //调用该函数
    break;
    case"其他":
    //调用其他函数
    break;
    default:
    //调用默认函数
    break;
    }
    }
    }

    publicvoidenter()
    {
    //……比如计算某值
    }

  2. JS调用后台带参数的方法

    对于前台调用后台的方法,我们想到最多的就是用AJAX,这个是毋庸置疑的, 我就不再这里多说了。我今天主要想说的是用JS调用后台的方法。
    对于后台往前台传值,用这种<%= nameValue%> 方法,我们是在熟悉不过了,由此,我们是否可以用同样的办法达到传值方法返回值的效果呢?
    我在这个项目中最先想到的就是尝试这种(因为这个项目用到了VML,用AJAX以前是不行,不过,后来测试还是没有问题,不过,需要把xmlns=http://www.w3.org/1999/xhtml给保留住)方法,结果是可行的。但是由于需要前台在调用后台的方法时,需要先给其传参数,这个遇到
    了一些麻烦,去网上看了一些解决方案,都是把字符串作为参数传递,而更多的网友是想知道如何传递变量的,呵呵,偶也是其中一个,因为这个变量
    的值是不确定的嘛!后台,得到一名叫“刚刚”的网友帮助,问题解决。现在把方法告知大家,以免在开发的过程中走同样的弯路。
    后台方法:

  3. protected string CsharpVoid(string strCC)
    {
       strCC = "你好!" + strCC;
      return strCC;
     }前台JS
  4.  function Init()
     {
       var v = "中国";
       var s = '<%=CsharpVoid("'+v+'") %>';
       alert(s);
     }
    这样就OK了
  5. 简单介绍下它的用法:
    一.AjaxPro的使用
    1.在项目中添加引用,浏览找到AjaxPro.2.dll文件
    2.在Web.config中的system.web里面写入以下代码
    </configuration>
    <system.web>
    <httpHandlers>
    <add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2"/>
    </httpHandlers>
    </system.web>
    <//configuration>
    3.在加载事件中,加入
    AjaxPro.Utility.RegisterTypeForAjax(typeof(类名));
    4.写的方法都要用
    [AjaxPro.AjaxMethod]开头,然后在写方法
    5.调用时必须写清楚
    命名空间名.类名.方法,例:WebUI._Default.getData();
    6.调用可分两中方法(同步调用,异步调用)
    //在后台写的无参方法
    [AjaxPro.AjaxMethod]
    public string getStr()
    {
    return  "hello my friends";
    }
    //在后台写的有参方法
    [AjaxPro.AjaxMethod]
    public string getString(string str)
    {
    return str + "Say: hello my friends";
    }
    a.同步调用
    (1).拖入html控件button
    (2).双击,自动显示在.aspx的脚本中
    (3).在里面写入你要输入的内容
    例:
    //------------------同步调用无参-----------
    function Button1_onclick()
    {
    var res=WebUI._Default.getStr();
    alert(res.value);
    }
    //------------------同步调用有参------------
    function Button2_onclick() //TextBox1为服务器控件
    {
    var str=document.getElementById("<%=TextBox1.ClientID%>").value;
    var res=WebUI._Default.getStr(str);
    alert(res.value);
    }
    b.异步调用
    (1).拖入html控件button
    (2).双击,自动显示在.aspx的脚本中
    (3).在里面写入你要输入的内容
    例:
    //-----------------异步调用无参-----------------
    function Button3_onclick() {
    WebUI._Default.getStr(getStrCallBack);
    }
    function getStrCallBack(res)
    {
    alert(res.value);
    }
    //-----------------异步调用有参-----------------
    function Button4_onclick() {
    var str=document.getElementById("<%=TextBox1.ClientID %>").value;
    WebUI._Default.getString(str,getStringCallBack);
    }
    function getStringCallBack(res)
    {
    alert(res.value);
    }
    7.调用对象
    //对象
    [AjaxPro.AjaxMethod]
    public Class getClass()
    {
    Class cla = new Class();
    cla.C_Id = 100;
    cla.C_Name = "34班";
    cla.Count = 20;
    return cla;
    }
    //------------------同步调用对象-----------
    function Button5_onclick() {
    var res=WebUI._Default.getClass().value;
    alert("班级编号:"+res.C_Id+"名称:"+res.C_Name+"人数:"+res.Count);
    }
    //------------------异步调用对象-----------
    function Button6_onclick() {
    WebUI._Default.getClass(getClassCallBack);
    }
    function getClassCallBack(clas)
    {
    var res=clas.value;
    alert("班级编号:"+res.C_Id+"名称:"+res.C_Name+"人数:"+res.Count);
    }
    8.数据集的使用
    //方法
    [AjaxPro.AjaxMethod]
    public DataSet getInfo()
    {
    return WebUI.GetDataSet.getList();
    }
    //--------------------异步调用数据集--------------
    function Button8_onclick() {
    WebUI._Default.getInfo(getDataSetCallBack);
    }
    function getDataSetCallBack(res)
    {
    var dataset=res.value;
    var strHtml="";
    strHtml +='<table  style ="border-collapse:collapse ; border-color:Gray ;"  border="1px">';
    strHtml +='        <tr>';
    strHtml +='            <td>学生编号</td>';
    strHtml +='            <td>名称</td>';
    strHtml +='            <td>年龄</td>';
    strHtml +='        </tr>';
    for(var i=0;i<dataset.Tables[0].Rows.length;i++)
    {
    strHtml +='        <tr>';
    strHtml +='            <td>'+ dataset.Tables[0].Rows[i].stu_id +'</td>';
    strHtml +='            <td>'+ dataset.Tables[0].Rows[i].stu_name +'</td>';
    strHtml +='            <td>'+ dataset.Tables[0].Rows[i].stu_age +'</td>';
    strHtml +='        </tr>';
    }
    strHtml +='    </table>';
    thedata.innerHTML=strHtml;//thedata是一个<div id="thedata"></div>中的thedata
    }
    9.验证码的使用
    //----------------------验证码的使用(必须采用同步调用)----------------------
    //验证码的使用
    [AjaxPro.AjaxMethod]
    public bool ValidCodeData(string code)
    {
    return (HttpContext.Current.Session["CheckCode"].ToString()==code);
    }
    function Button9_onclick() {
    var code=document.getElementById("<%=TextBox2.ClientID %>").value;
    var bool=WebUI._Default.ValidCodeData(code).value;
    if(bool==true)
    {
    alert("ok");
    }else
    {
    alert("no");
    }
    }
    
    二,直接调用:
    javascript中:<%=后台方法%>
    function says()
    {
    alert("<%=Say()%>");
    }
    function del()
    {
    alert("<%=DeleteByID(8)%>");//DeleteByID(8)后台方法名
    }
    三,采用ICallbackEventHandler回调
    //必须声明System.Web.UI.ICallbackEventHandler接口
    public partial class _Default : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
    {
    //定义一个回调的返回值
    private string Result;
    //定义两个变量,用来接收页面传过来到操作数
    private string Num1;
    private string Num2;
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    /// <summary>
    /// 该方法是回调执行的方法,根据参数在这个方法中处理回调的内容,该方法没有返回值
    /// </summary>
    /// <param name="eventArgument">此参数是从客户端传过来的</param>
    public void RaiseCallbackEvent(string eventArgument)
    {
    //eventArgumeng 为javascript从客户端传递的参数,本例传过来三个参数用“/”分割将每个参数取出存入数组
    string[] PagParams = eventArgument.Split('/');
    Num1 = PagParams[1];
    Num2 = PagParams[2];
    //根据第一个参数(所选的操作符),调用不同的执行函数
    switch (PagParams[0])
    {
    case "0":
    Result = add(); break;
    case "1":
    Result = sub(); break;
    case "2":
    Result = multi(); break;
    case "3":
    Result = division(); break;
    }
    }
    /// <summary>
    /// 该方法是返回回调的结果给客户端
    /// </summary>
    /// <returns></returns>
    public string GetCallbackResult()
    {
    return Result;
    }
    //一下四个函数是通过RaiseCallbackEvent方法,调用的回调要执行操作的函数
    private string add()
    {
    double addResult = double.Parse(Num1) + double.Parse(Num2);
    return addResult.ToString();
    }
    private string sub()
    {
    double addResult = double.Parse(Num1) - double.Parse(Num2);
    return addResult.ToString();
    }
    private string multi()
    {
    double addResult = double.Parse(Num1) * double.Parse(Num2);
    return addResult.ToString();
    }
    private string division()
    {
    double addresult = double.Parse(Num1) / double.Parse(Num2);
    return addresult.ToString();
    }
    }
    我的实现,前台一个textbox,一个普通button,单击按钮,将textbox中的值插入数据库 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>  <input id="Button1" type="button" value="点击我" οnclick="test();" />   function test()    {       var names=document.getElementById("TextBox1").value;       var result= _Default.insert(names).value;       alert(result);    }后台 #region    [AjaxPro.AjaxMethod]
    
        public static string insert(string name)    {
    
            string flag = "提交失败";        SqlConnection conn = DbOpen.DbaseConfigConnect();        SqlCommand command = new SqlCommand();        command.Connection = conn;        string str = "update WBLXDJB set WXR='" + name + "' where BXBH='DIA201'";        command.CommandText = str;        if (command.ExecuteNonQuery() == 1)            flag = "提交成功";        return flag;
    
        }    #endregion protected void Page_Load(object sender, EventArgs e)    {        AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));}记得引用AjaxPro.2.dllweb.config
    <httpHandlers>
        <add verb="POST,GET" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory, AjaxPro.2"/>        </httpHandlers>

C#前台js调用后台代码

前台js
<script type="text/javascript" language="javascript">
  function Ceshi()
  {
    var a = "<%=Getstr()%>";
    alert(a);
  }
</script>
<input type="button" value="http://www.2cto.com/kf/201104/js调用后台代码" /> 
后台代码
public string Getstr()
{
  string aa = "你们好啊!";
  return aa;
}

C#后台调用前台js代码

前台js
<script type="text/javascript" language="javascript">
  function Ceshi()
  {
    var a = "你们好啊!"
    alert(a);
  }
</script>
<asp:Button ID="Button1" runat="server" Text="后台调用js" 
οnclick="Button1_Click" />
后台代码
protected void Button1_Click(object sender, EventArgs e)
{    //如果有UpdatePanel就用如下代码调用前台js    ScriptManager.RegisterStartupScript(UpdatePanel1, this.Page.GetType(), "", "Ceshi();", true);    //如果没有就如下代码    this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "", "Ceshi();", true); 

js调用后台方法与后台调用js方法相关推荐

  1. c#调用js脚本报错_C#后台调用前台JS函数方法

    总结了公司其他人的一些C#后台调用前台的方法: 方法一: 假设前台页面的JS脚本标签中有如下函数: function A() { alert("hello word!"); } 那 ...

  2. atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97

    atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参 ...

  3. java swing调用H5_atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97...

    atitit.js javascript 调用c# java php后台语言api html5交互的原理与总结p97 1.实现html5化界面的要解决的策略 1.1.Js交互 Firefox与Chro ...

  4. java按钮调用 后台方法_onclick怎么调用后台中的一个方法

    javaScript函数中执行C#代码中的函数: 方法一:1.首先建立一个按钮,在后台将调用或处理的内容写入button_click中; 2.在前台写一个js函数,内容为document.getEle ...

  5. ajax返回实体类字符串,js使用ajax传值给后台,后台返回字符串处理方法

    之前使用js获取后台生成的JSON字符串,然后给select填充值,这次需要重新获取一次. 这里的目标是,在一个input输入框里,输入一个用户名,判断是否为空,是否不存在,如果存在返回几个字段给前台 ...

  6. [转]JS调用Android里面的方法,Android调用JS里面的方法

    FROM : http://blog.csdn.net/hj563308597/article/details/45197709 Android WebView 在公司Android的开发过程中遇到一 ...

  7. php编写用户登录页面,js+php实现静态页面实时调用用户登陆状态的方法

    这篇文章主要介绍了js+php实现静态页面实时调用用户登陆状态的方法,采用在静态页面中使用js调用php页面从而实现用户登录状态的实时调用功能,需要的朋友可以参考下 本文实例讲述了js+php实现静态 ...

  8. js 函数闭包内部返回函数体调用方法难点解答

    今天在网上,看到一篇关于js函数难点的文章,js函数的一些难点.在那上面提了一下,关于js函数返回另一个函数的问题,并附上了一道面试题: var add = function(x){ var sum ...

  9. .php中js写法,js函数常见的写法以及调用方法

    写在前面:本文详细的介绍了5中js函数常见的写法以及调用的方法,平时看别人代码的时候总是看到各种不同风格的js函数的写法.不明不白的,找了点资料,做了个总结,需要的小伙伴可以看看,做个参考. 1.常规 ...

最新文章

  1. python二分查找
  2. hadoop数据流转过程分析
  3. 怎样用c语言写一个系统,用C语言写关于操作系统的一个问题。
  4. extjs 中iframe内存泄漏的问题
  5. 360企业版终端安装说明
  6. Bootstrap页面布局13 - BS按钮
  7. 【Matlab】求解黎卡提 Riccati 方程 李雅普诺夫 Lyapunov 方程
  8. jenkins blue ocean 与 pipeline
  9. 根据 dba_errors 制定 数据库报警邮件
  10. Spring Boot定时任务-cron表达式
  11. [Usaco2010 Nov]Visiting Cows
  12. lombok原理_听说学会用 Lombok 就可以让你早点下班?(你还不看)
  13. 顺序线性表的基本操作(C语言实现)
  14. jQuery EasyUI 数据网格
  15. mac 环境 Android Studio升级后Gradle project Sync Failed解决方法
  16. FortiGate常用命令
  17. python-pygame作品之MineCraft小鸡
  18. 常用英雄胜率怎么刷_王者荣耀怎么刷英雄胜率和场次胜率方法解析
  19. Kronecker积
  20. 椭圆型变分问题理论及数值方法

热门文章

  1. ARM64-PWN笔记01
  2. 【排序算法全解】之 - 插入排序(InsertSort)
  3. 高被引论文有什么特征?
  4. 【DBAplus】SQL优化:一篇文章说清楚Oracle Hint的正确使用姿势
  5. 关于Android2.2定制出厂默认输入法的一些心得
  6. oracle闪回某个时间点的数据库,Oracle 闪回总结
  7. 2020年计算机组装行业,2020年办公电脑什么配置合适 2020组装机电脑配置单推荐...
  8. 斐讯n1安装centos7+docker openwrt
  9. vue配合html中实现四舍五入数值后保留原始数值的方法
  10. [字符编码] 理论篇:常见字符集与编码方式