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

方法二:1、函数声明为public             
           后台代码(把public改成protected也可以)
           public string ss()
           {
              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里有:
public Page_OnLoad()
{
if (!Page.IsPost())
{
string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";
//根据传回来的值决定调用哪个函数
switch(strFunName)
{
case "enter()":
enter() ; //调用该函数
break;
case "其他":
//调用其他函数
break;
default:
//调用默认函数
break;
}
}
}

public void enter()
{
//……比如计算某值
}

方法五 直接用XHtmlRequest, client callback, javascript访问Web Service或WebMethod.

以访问WebMethod为例:
1、ScriptManager的EnablePageMethod必须为true.

HTML code
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
  <Scripts>
  <asp:ScriptReference Path="~/Scripts/MyScript.js" />
  </Scripts>   
</asp:ScriptManager>

2、服务器方法必须是static方法

C# code
[System.Web.Services.WebMethod]
public static string[] GetStringArray(string s, int cnt)
{
  string[] stringArray = new string[cnt];
  Random rnd = new Random();
  for (int i = 0; i < cnt; i++)
  {
  stringArray[i] = string.Format("Random{0}: {1}-{2}",i, s, rnd.Next(cnt));
  }
  //throw new Exception("亲爱的错误");
  System.Threading.Thread.Sleep(3000);
  return stringArray;
}

3、可以把script代码放到.js文件里,如Scripts目录下的MyScript.js内。

JScript code
function CallWebMethod(prefix,count)
{
  $get('result').innerText = "请稍侯...";
  PageMethods.GetStringArray(prefix, count, OnSuccess, OnFailed);
  return false;
}
function OnSuccess(stringArray)
{
  var s = "";
  for(var i = 0; i < stringArray.length; i++)
  {
  s += stringArray[i] + "\n";
  }
    
  $get('result').innerText = s;
}
function OnFailed(error, userContext, methodName)
{
  if(error != null)
  {
  alert("发生了亲爱的错误:" + error.get_message());
  }
}

//.aspx

HTML code
<form id="form1" runat="server">
  <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
  <Scripts>
  <asp:ScriptReference Path="~/Scripts/MyScript.js" />
  </Scripts>   
  </asp:ScriptManager>
  <div>
  <asp:Label ID="LabelPrefix" AssociatedControlID="TextBoxPrefix" runat="server" Text="string prefix: "></asp:Label>
  <asp:TextBox ID="TextBoxPrefix" runat="server"></asp:TextBox>
  <asp:Label ID="LabelCnt" AssociatedControlID="TextBoxCnt" runat="server" Text="count: "></asp:Label>
  <asp:TextBox ID="TextBoxCnt" runat="server"></asp:TextBox>
  <cc1:FilteredTextBoxExtender
  ID="FilteredTextBoxExtenderCnt" runat="server"
  TargetControlID="TextBoxCnt"
  ValidChars="1234567890"
  >
  </cc1:FilteredTextBoxExtender>
  <input id="Button1" type="button" value="button" TextBoxPrefix.ClientID %>').value,$get('<%= TextBoxCnt.ClientID %>').value)" />
  </div>
  <div id="result" style="border:solid 1px Maroon; margin: 10px; padding;5px;">
  </div>
</form>

转自:http://saint.blog.51cto.com/403308/410000

JS调用服务器端方法的更多相关文章

  1. asp.net javascript客户端调用服务器端方法

    如何用js调用服务器端方法.首先服务器端方法的格式如下 [System.Web.Services.WebMethod]        public static void serverMethod(s ...

  2. AjaxPro.dll,asp.net 前台js调用后台方法(无刷新)

    1.什么是Ajax Ajax是异步Javascript和XML(Asynchronous JavaScript and XML)的英文缩写."Ajax"这个名词的发明人是Jesse ...

  3. JS调用OC方法并传值,OC调用JS方法并传值////////////////////////zz

     iOS开发-基于原生JS与OC方法互相调用并传值(附HTML代码)     最近项目里面有有个商品活动界面,要与web端传值,将用户在网页点击的商品id 传给客户端,也就是js交互,其实再说明白一点 ...

  4. [iOS Hybrid实践:UIWebView中Html中用JS调用OC方法,OC执行JS代码]

    原理: 1.JS调用OC 每次webview执行跳转时都会被iOS给拦截,执行下面函数获得系统允许. 因此可以根据跳转信息转给系统,执行相应功能,比如打开相册等. // 网页中的每一个请求都会被触发 ...

  5. UIWebView中Html中用JS调用OC方法及OC执行JS代码

    HTML代码: <html> <head> <title>HTML中用JS调用OC方法</title> <meta http-equiv=&quo ...

  6. JS调用Silverlight方法拾遗

    在最近做的物联网项目中,需要利用封装过的Silverlight刻度控件显示温度,湿度,二氧化碳浓度等值.由于最新的数据是通过js ajax获取的,所以需要把这些数据传递给silverlight显示,这 ...

  7. js调用后台方法(如果你能容忍执行的后台方法变成一个常量)

    最近一直在做一个电话拨号的系统,系统不大,但是做的时间有点长了.其中用到了一个技术:js调用后台方法.解决这个问题花了不少时间,现如今仍然还有些不明白的地方,今天跟大家分享一下.真正明白的同学欢迎指正 ...

  8. c# js调用AjaxPro方法出错解析

    公司的项目的框架中有一部分用到了AjaxPro这个方法,看到这个方法的我一脸懵逼,老老实实去百度了一下. AjaxPro是.NET平台下的一个回调式AJAX框架,使用简单,功能强大.顾名思义ajax, ...

  9. Xilium.CefGlue利用XHR实现Js调用c#方法

    防外链 博客园原文地址在这里http://www.cnblogs.com/shen6041/p/3442499.html 引 Xilium CefGlue是个不错的cef扩展工程,托管地址在这里 ht ...

随机推荐

  1. lnmp 中的laravel出现白屏的处理办法

    find / |grep fastcgi_params 其实是找fastcgi_params这个文件编辑 如果在知道目录的情况下也可以直接 vi /usr/local/nginx/conf/fastc ...

  2. git上传文件夹报错: ! [rejected] master -> master (fetch first) error: failed to push some refs to 'https://github.com/taminachen/rjxm.git' hint: Updates were rejected because the remote contains work

    使用git上传本地文件夹到远程仓库,使用如下命令:git push -u origin master时报错 原因是在GitHub创建仓库时创建了readme文件,但是本地没有这个文件,造成本地目录与远 ...

  3. wordpress的固定链接问题

    在安装完wordpress后,按照其方法在/etc/apache2/sites-available/000-default.conf文件中添加了下述代码中的加重部分: [...] ServerAdmi ...

  4. C++ STL(二)vector的用法

    ##### vector的定义 ```#include <iostream>#include <string>#include <vector>using name ...

  5. CF Round #424 Div.2 D

    n个人拿K个钥匙中的n个然后到办公室(点p) 问最少需要的时间是多少 先排序 如果j<=i 则必须拿这个钥匙 dp[i][j]=max(dp[i-1][j-1],abs(p-b[j])+abs( ...

  6. SpringMVC与Json数据交互

    简单回顾了一下SpringMVC和前端JSON数据是怎么交互的 接下来详细说一下过程 前端代码写的很简单  主要是为了试验一下JSON数据的前后台传递 前端代码给大家发出来 其实真的很简单 前端接受了 ...

  7. small task

    task:use c89 draw turtle result:

  8. Spring的概述

    1 Spring是什么? Spring是分层的Java SE/EE应用的full-stack的轻量级开源框架,以IOC(控制反转)和AOP(面向切面编程)为内核,提供了展现层SpringMVC和持久层 ...

  9. R语言-六大数据结构

    R语言有六种基本的数据结构(或者说数据类型吧).根据数据的维度和同质/异质可分为5种数据类型,最后再介绍一种特殊的类型“因子”.   同质 异质 1维 原子向量 列表 2维 矩阵 数据框 n维 数组 ...

  10. excel解决日常问题记录

    =MOD(ROW(),2)和=TEXT(B2487-B2486,"[h]:mm:ss"),我利用excel分析出了延迟的数据 比较2个字符串是否一样:=EXACT(A2,F2) 公 ...