javascript与asp.net(c#)互相调用方法

1、获得aspx客户端请求地址:


代码如下:

<a src= 'http://<%=Request.Url.Host %><%= ResolveUrl("../PayCenter/AlipayAdd.aspx")%>'>地址</a>

2、C#调用客户端方法:(top.window.document:表父窗体,如果是MainFrame对象在本窗体中,则不加top.window.document)
Js中的方法:


代码如下:

function navurl(url) {
$("#mainFrame",top.window.document).attr("src", url);
}

C#调用:


代码如下:

string navUrl = "javascript:navurl('" + "http://" + Request.Url.Host + ResolveUrl("../Document/callIndex.aspx?FolderId=");
DocName.NavigateUrl = navUrl + txtDocId.Value.Trim() + "')";

3. C#调用客户端方法:


代码如下:

page.ClientScript.RegisterStartupScript(page.GetType(), "message", "<script language='javascript'>alert('" + msg.ToString() + "');</script>");

下面要解决的问题如下:
1.如何在JavaScript访问C#函数?
  2.如何在JavaScript访问C#变量?
  3.如何在C#中访问JavaScript的已有变量?
  4.如何在C#中访问JavaScript函数?
  问题1答案如下:
  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 里用可以调用前台脚本
<script language=javascript>
  var a = "<%=ss()%>";
  alert(a);
</script>
  方法三:
<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()
  {
    //……比如计算某值
  }
  
问题2.如何在JavaScript访问C#变量?
  答案如下:
  方法一:1、通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server">
  
方法二:1、如后台定义了PUBLIC STRING N; 前台js中引用该变量的格式为''或"++"
  
方法三:1、或者你可以在服务器端变量赋值后在页面注册一段脚本
"<script language='javascript'>var temp=" + tmp + "</script>"
  tmp是后台变量,然后js中可以直接访问temp获得值。
  
问题3.如何在C#中访问JavaScript的已有变量?
  答案如下:
  方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;2、后台用request["id"]来获取值;
  方法二:可以用cookie或session
  
问题4.如何在C#中访问JavaScript函数?
  答案如下:
  c#代码中执行javaScript函数:
  方法一:1、
Page.RegisterStartupScript("ggg"," ");
  方法二:使用Literal类,然后
private void Button2_Click(object sender, System.EventArgs e)
  {
    string str;
    str=" ";
    //Literal1.Visible=true;
    Literal1.Text=str;
  }

(0)

相关推荐

  • 常用C#关键字详解教程(比较全面)

    不论你是新手还是老手,是否对C#的某些关键字有些摸不到头脑呢?现在我就和大家一起学习一下这些关键字的含义 类型 Void 用作方法的返回类型时,void 关键字指定方法不返回值. 在方法的参数列表中不允许使用 void.采用以下形式声明一个无参数的.不返回值的方法: Ovid SampleMethod(); Var 在方法范围中声明的变量可以具有隐式类型 var.隐式类型的本地变量是强类型变量(就好像您已经声明该类型一样),但由编译器确定类型. 有返回值 引用类型 Class 类是使用关键字 c

  • 常用C#正则表达式汇总介绍

    有一段时间,正则表达式学习很火热很潮流,当时在CSDN一天就能看到好几个正则表达式的帖子,那段时间借助论坛以及Wrox Press出版的<C#字符串和正则表达式参考手册>学习了一些基础的知识,同时也为我在CSDN大概赚了1000分,今天想起来,去找<C#字符串和正则表达式参考手册>时,已经不知所踪了.现在用到正则的时候也比较少,把以前的笔记等整理一下,以志不忘. (1)"@"符号 符下两ows表研究室的火热,当晨在"@"虽然并非C#正则表达式

  • C#中String类常用方法汇总

    本文实例汇总了C#中String类常用方法.分享给大家供大家参考.具体分析如下: C#中的String类很有用,下面是一些它的常用方法的总结,如果灵活运用这些的话,String类就掌握的差不多了. .ToLower()    //转为小写字符串"AbC"-->"abc" .ToUpper()    //转为大写"AbC" -->"ABC" .Trim()       //去掉字符串首尾的空格"  abc

  • C#中载入界面的常用方法

    本文实例讲述了C#中载入界面的常用方法.分享给大家供大家参考.具体方法分析如下: 方法1.采用事件委托的方法  对象:主窗体:FrmMain 加载窗体:FrmLoading  思路:  在主窗体加载前显示窗体FrmLoading,当主窗体加载完毕后(第一次显示的时候),关闭FrmLoading C#代码如下所示: 复制代码 代码如下: using System; using System.Collections.Generic; using System.ComponentModel; usin

  • asp.net中javascript与后台c#交互

    最近做一个小项目,网页中嵌入google maps,输入经纬度坐标可以定位地图位置并加注标记,点击标记获取远端摄像头数据并在视频窗口实现播放.在实际操作过程中,由于经纬度数据和视频登录的用户名密码数据均要从后台数据库中提取,而第三版的google maps api又是在javascript中实现的,因此不可避免的需要前端脚本与后台进行交互.由于是在asp.net中实现,故问题演化成asp.net中javascript与后台c#如何进行交互. C#代码与javaScript函数的相互调用主要有四个

  • 总结ASP.NET C#中经常用到的13个JS脚本代码

    在C#开发过程中,免不了写一些JS,其实做后端开发的,本身不擅长写JS,干脆总结一下,方便自己也方便别人,分享给大家.呵呵~~ 1.按钮前后台事件 复制代码 代码如下: <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" OnClientClick="alert('客房端验证,阻止向服务器端提交');retu

  • 10个C#程序员经常用到的实用代码片段

    1 读取操作系统和CLR的版本 OperatingSystem os = System.Environment.OSVersion; Console.WriteLine("Platform: {0}", os.Platform); Console.WriteLine("Service Pack: {0}", os.ServicePack); Console.WriteLine("Version: {0}", os.Version); Consol

  • C#数组排序的两种常用方法

    本文实例讲述了C#数组排序的两种常用方法.分享给大家供大家参考.具体如下: 1.第一个例子 定义代码 #region Array数组排序1 public class Pigeon : IComparable<Pigeon> //类元素本身继承比较接口 { int XValue; int YValue; public string BatchNo { get; set; } public int CompareTo(Pigeon other) { if (other == null) throw

  • asp.net(C#)解析Json的类代码

    本次工作内容是要将以下数据解析成.Net可以使用的数据,返回的数据除了header,其他的都是可变的,也就是说结构不是固定的.完全由用户选择,所以选择了生成DataTable. Json数据格式如下: 复制代码 代码如下: {"dataSet":{ "header":{ "returnCode":"0", "errorInfo":"HTTP请求错误", "version&quo

  • Javascript 直接调用服务器C#代码 ASP.NET Ajax实例

    在MS Ajax中,JS与C#交互的一种方式就是调用WebService,该WebService可以ASMX的也可以是WCF的,不论哪种方式,系统都会自动为开发者生成代理的JS类.实现方法如下: 1.        建立一个网站,并在其中添加一个WCF服务(这里一定要选择Ajax-Enabled WCF Service),如下图所示: 2.        IDE会自动为我们生成一个SVC文件,是对外的接口,以及该SVC对应的后台实现类,该类文件会被放在App_Code下,如下图所示: 3.修改该

  • asp.net(C#)中给控件添加客户端js事件的方法

    放在服务器端,也可以用ajax来实现,不刷页面.但我觉得有更直接更简单方法,用一个js事件是可以实现的. 但,DropDownList不偈Button等控件提供了一些像"OnClientClick"前台事件,只有服务端事件. 想到,所有C#页面代码,最终都是生成HTML,js事件也是最终运在浏览器中,以Html为基础的.服务端控件最终生成的HTML控件有什么js事件,我们应该就能在aspx中给它添加相应的事件. DropDownList 生成的Htm是元素<Select>是

  • C#常用的命名规则汇总

    本文详细汇总了C#常用的命名规则.分享给大家供大家参考.具体如下: Pascal 规则 每个单词开头的字母大写(如 TestCounter).   Camel 规则 除了第一个单词外的其他单词的开头字母大写. 如. testCounter. Upper 规则 仅用于一两个字符长的常量的缩写命名,超过三个字符长度应该应用Pascal规则. 例如: 复制代码 代码如下: public class Math { public const PI = ... public const E = ... pu

  • C#控制键盘按键的常用方法

    本文实例讲述了C#控制键盘按键的常用方法.分享给大家供大家参考.具体实现方法如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; names

随机推荐