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
    }

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM