C# 与java函数的交互

来源:互联网 发布:淘宝签证代办 编辑:程序博客网 时间:2024/04/30 02:58

1.在后台c#代码中调用前台jacascript的方法:

 【方法一】在Page_Load事件中将java函数添加到按钮的单击事件中。

 html代码:

  1. <script type="text/javascript" language="javascript">
  2.    function jstest()
  3.      {
  4.         alert("这是js方法");
  5.         return false;
  6.      } 
  7. </script>
  8. 1、<asp:Button ID="Button1" runat="server" Text="Button"/> //实现了js,OnClientClick/OnClick属性可加也可不加。
  9. 2、<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/> //加了OnClick,js函数与后台OnClick方法一起执行。

.cs代码:

  1. protected void Page_Load(object sender, EventArgs e)
  2.   {
  3.      Button1.Attributes["onclick"] = "return jstest();"//jstest()是js函数
  4.    }

【方法二】直接在click事件中调用。html代码:

  1. <script type="text/javascript" language="javascript">
  2.    function jstest()
  3.      {
  4.         alert("这是js方法");
  5.         return false;
  6.      } 
  7. </script>
  8. <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click"/> 

.cs代码:

  1. protected void Button1_Click(object sender, EventArgs e)
  2.  {
  3.    ClientScript.RegisterStartupScript(this.GetType(), "clear""<script>jstest()</script>");
  4.  }

2.前台html中javascript调用c#方法

  1).cs后台C#方法有返回值,代码如下:

 

  1. protected string CsharpMethod1(string strC) //有参数
  2.     {
  3.         string text = strC;
  4.         TextBox1.Text = text;
  5.         return strC;
  6.     }
  7. protected string CsharpMethod2()  //无差数
  8.     {
  9.         TextBox1.Text = Button1.Text;
  10.         return TextBox1.Text.ToString();
  11.     }

html代码:

 

  1. <script language="javascript">
  2.   function jstest1()
  3.   {
  4.     var s = "<%=CsharpVoid("有参数方法")%>";  
  5.    // return s;  
  6.     document.write(s);
  7.   }
  8.  function jstest2()
  9.   {
  10.     var s = "<%=CsharpVoid()%>";  
  11.     return s; 
  12.   }
  13. </script>
  14. <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  15. <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="jstest1()"/>
  16. <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="jstest2()"/>

   2)C#方法无返回值,.cs代码:

  

  1. public void  CsharpVoid()
  2.     {
  3.         string text = Button1.Text;
  4.         TextBox1.Text = text;
  5.     }

    html代码:

  1. <script  language="javascript">
  2. document.write("<%CsharpVoid();%>");
  3. </script>

  还有一种方法,把事件内容写到写到某个控件的单击事件里面,然后将控件设置隐藏,这样就好像只有后台有方法,再用js来调用控件。如下,有一个按钮Button1事件。

.cs代码:

  1. protected void Button1_Click(object sender, EventArgs e)
  2.     {
  3.        TextBox1.Text ="JS调用button方法";
  4.     }

    接着html中用Button2的客服端事件来调用js函数。的代码为:

 

  1. <script language="javascript">
  2.   function jstest3()
  3.   {
  4.     document.getElementById("button1").click();
  5.   } 
  6. </script>
  7. <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
  8. <asp:Button ID="Button1" runat="server" Text="Button" Style="display: none;" OnClick="Button1_Click" />
  9. <asp:Button ID="Button2" runat="server" Text="Button" OnClientClick="jstest3()"/> 

3、在JavaScript访问C#变量

   在.cs代码中定义一个 变量

  1. public string n = "C#变量";

  在前台,用java调用 再输出这个变量

  1. <script language="javascript">
  2.   function getCsharp()
  3.   {
  4.     var s = "<%=n%>";  //n为后台变量
  5.     document.write(s);
  6.  }
  7. </script>
  8. <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="getCsharp()"/>

4、在C#中调用Java变量

方法一:1、前台使用静态文本控件隐藏域,将js变量值写入其中;2、后台用request["id"]来获取值; 
方法二:可以用cookie或session