zoukankan      html  css  js  c++  java
  • C#代码与javaScript函数的相互调用

         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> 

      方法三: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()
      {
      //……比如计算某值
      } 

      问题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;
      } 

       方法三:使用按钮的onClick事件
     如:

    aspx文件:

    <%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="Webtest.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
       <title>WebForm1</title>
       <script language="javascript">
        function test()
        {
         alert("Test");
        }
      </script>

    </HEAD>

    <body MS_POSITIONING="GridLayout">
       <form id="Form1" method="post" runat="server">
        <FONT face="宋体">
         <asp:Button id="btnTest" style="Z-INDEX: 101; LEFT: 392px; POSITION: absolute; TOP: 256px" runat="server"
          Text="Button"></asp:Button></FONT>
       </form>
    </body>
    </HTML>

    cs文件:

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;

    namespace Webtest
    {
    /// <summary>
    /// WebForm1 的摘要说明。
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
       protected System.Web.UI.WebControls.Button btnTest;

       private void Page_Load(object sender, System.EventArgs e)
       {
        // 在此处放置用户代码以初始化页面
       btnTest.Attributes.Add("onClick","return test()");
       }

    }
    http://www.webjx.com/aspnet/aspnet_2007_10_30_165.html

  • 相关阅读:
    HDU1372,BFS象棋马走日
    看完一本小的算法书一个总结吧
    最小生成树Prim
    Junit单元测试的简单使用(主要是在spring框架下的项目)
    并查集
    最新最实用的公式技巧大汇总!
    这款Office密码破解工具,无坚不摧!
    有了它,友谊的船说不翻就不翻!
    Word公式装逼技巧,你绝对不会!
    为什么MathType窗口变灰色
  • 原文地址:https://www.cnblogs.com/xzp/p/1017855.html
Copyright © 2011-2022 走看看