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
    }

 

 

 

posted @ 2012-03-04 00:37  烁星  阅读(5228)  评论(0编辑  收藏  举报