zoukankan      html  css  js  c++  java
  • asp.net与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’,’’)">

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

      方法一:通过页面上隐藏域访问 <input id="xx" type="hidden" runat="server">

      方法二:假如后台定义了public string N; 前台js中引用该变量的格式为 '<%=n%>' 或 "+<%=n%>+"  

      方法三:或者你可以在服务器端变量赋值后在页面注册一段脚本

          "<script language='javascript'>var temp=" + tmp + "</script>"
          tmp是后台变量,然后js中可以直接访问temp获得值。

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

      方法一:在界面上放一个隐藏的控件HtmlInputHidden,然后设置为以服务器控件运行,这样在js脚本中和ASP.NET代码里都可以访问到该控件的值

      js中给服务器控件赋值:
              var bt=document.all('Name').value;
              bt.value='名称';
         ASP.NET后台使用Name.Value来访问。

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

      方法一:Page.RegisterStartupScript("ggg","<script>SetVisible(1); </script>");

    5.js脚本如何访问服务器控件的值
        假如界面上有一个TextBox控件,ID为Name。

        js方式:var myvalue=document.all('Name').value;

        Jquery方式:var myvalue=$.trim($("#Name").val();     得到焦点:$("#Name").focus();

    6.前台和后台之间的函数的调用(异步)

        <head runat="server">
        <title></title>
        <script type="text/javascript">
        function callServer(arg){
          var oTb = document.getElementById('<%=editValue.ClientID %>');
          // arg中是传给服务器的变量
          arg = oTb.value;
          <%=ClientScript.GetCallbackEventReference(this, "arg", "receiveServerResult", null, true)%>
        }

        function receiveServerResult(result){
          // 在这里添加处理服务器返回结果的逻辑,result变量是服务器返回的结果
          alert(result);
        }
        </script>

        </head>
        ...//此处省略部分代码
          <asp:TextBox ID="editValue" runat="server" />
          <asp:Button ID="btnSubmit" runat="server" Text="Submit Data" OnClientClick="callServer();return false;" />

        

        CS文件

        C# code
        //页面类继承ICallbackEventHandler接口,并实现其中的两个方法
        public partial class _Default : System.Web.UI.Page , ICallbackEventHandler
        {
          private string m_strResult = "";

          #region ICallbackEventHandler Members

          public string GetCallbackResult()
          {
            // 返回服务器端处理结果给receiveServerResult方法
            return m_strResult;
          }

          public void RaiseCallbackEvent(string eventArgument)
          {
            // eventArgument是客户端传来的变量,对应arg变量
            // 在这里添加服务器端处理逻辑...
            m_strResult = eventArgument;
          }

          #endregion
        }

     

     

  • 相关阅读:
    模块二
    lambda map() filter() zip()练习
    装饰器
    函数模块回顾
    连接不同数据OleDb(不完整)
    连接不同的数据库
    连接数据库ORACLE(不完整)
    多数据之间的连接操作ODBC(不完整)
    ora0131
    ORACLE linux 下 sqlplus命令
  • 原文地址:https://www.cnblogs.com/zuoguanglin/p/2378853.html
Copyright © 2011-2022 走看看