javascript与c#交互的常见问题及解决方案

以下是一些javascript与c#交互的常见问题及解决方案

1.如何在javaScript访问C#函数?

  2.如何在Javascript访问C#变量?

  3.如何在C#中访问JavaScript的已有变量?

  4.如何在C#中访问JavaScript函数?

  问题1答案如下:

  javaScript函数中执行C#代码中的函数:

  方法一:1、首先建立一个按钮,在后台将调用或处理的内容写入button_click中;

  2、在前台写一个js函数,内容为

  1. document.getElementById("btn1").click();  

  3、在前台或后台调用js函数,激发click事件,等于访问后台c#函数;

  方法二:1、函数声明为public

  后台代码(把public改成PRotected也可以)

     

  1. public string ss()   
  2.   {   
  3.     return("a");   
  4.   }  


 

  2、在html里用可以调用

  前台脚本

  1. <script language=javascript>   
  2.   
  3.   var a = "<%=ss()%>";   
  4.   
  5.   alert(a);   
  6.   
  7. </script>  


 

  方法三:1、

  1. <script language="javascript">   
  2.   
  3.   <!--   
  4.   
  5.   function __doPostBack(eventTarget, eventArgument)   
  6.   
  7.   {   
  8.   
  9.     var theForm = document.Form1; //指runat=server的form    
  10.   
  11.     theForm.__EVENTTARGET.value = eventTarget;   
  12.   
  13.     theFrom.__EVENTARGUMENT.value = eventArgument;   
  14.   
  15.     theForm.submit();   
  16.   
  17.   }   
  18.   
  19.   -->   
  20.   
  21.   </script>   
  22.   
  23.   <input id="Button1" type="button" name="Button1" value="按钮" onclick="javascript:__doPostBack('Button1','')">  


 

  方法四:

  1. <script language="javascript">   
  2.   
  3.   function SubmitKeyClick()   
  4.   
  5.   {   
  6.   
  7.     if (event.keyCode == 13)   
  8.   
  9.     {   
  10.   
  11.       event.cancelBubble = true;   
  12.   
  13.       event.returnValue = false;   
  14.   
  15.       document.all.FunName.value="你要调用的函数名";   
  16.   
  17.       document.form[0].submit();   
  18.   
  19.     }   
  20.   
  21.   }   
  22.   
  23.   </script>   
  24.   
  25.   <INPUT onkeypress="SubmitKeyClick()" id="aaa" type="text">   
  26.   
  27.   <input type="hidden" name="FunName"> 〈!--用来存储你要调用的函数 --〉  


 

  在.CS里有:

  1. public Page_OnLoad()   
  2.   {   
  3.     if (!Page.IsPost())   
  4.     {   
  5.       string strFunName=Request.Form["FunName"]!=null?Request.Form["FunName"]:"";   
  6.       //根据传回来的值决定调用哪个函数    
  7.       switch(strFunName)   
  8.       {   
  9.         case "enter()":   
  10.         enter() ; //调用该函数    
  11.         break;   
  12.         case "其他":   
  13.         //调用其他函数    
  14.         break;   
  15.         default:   
  16.         //调用默认函数    
  17.         break;   
  18.       }   
  19.     }   
  20.   }   
  21.   public void enter()   
  22.   {   
  23.     //……比如计算某值    
  24.   }  


 

  问题2.如何在JavaScript访问C#变量?

  答案如下:

  方法一:1、通过页面上隐藏域访问

  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、

  1. Page.RegisterStartupScript("ggg"," ");  

  方法二:使用Literal类,然后

  1. private void Button2_Click(object sender, System.EventArgs e)   
  2.   {   
  3.     string str;   
  4.     str=" ";   
  5.     //Literal1.Visible=true;    
  6.     Literal1.Text=str;   
  7.   }   
posted on 2012-12-03 09:25  胡福鹏  阅读(306)  评论(0)    收藏  举报