前台和后台互相調用方法


前台的方法在后台可以調用,后台的方法在前台也是可以調用的。

后台調用前台的方法比較簡單,我們先來看看。

   //我再前台聲明了一個有參方法 無參的一樣的
            function Back(i) {
                console.log("后台調用前台方發" + "," + i);
            }
  //加載事件里面不能用這種,加載事件以外可以用
            //Response.Write("<script>Back(9);</script>");
            //原因:頁面會先執行后台加載事件,也就是說這個時候還沒前台js生成。

            //什么時候都可以用      這個很靈活的,你可以自己去封裝這個方法,把參數留出來,可以根據自己的要求完成不同的前台腳本
            Page.ClientScript.RegisterStartupScript(Page.ClientScript.GetType(), "myscript", "<script>Back(9);</script>");

后台調用沒什么好說的,今天主要想說一說前台前台后台方法。

    public string BFunOne()
        {
            return "這是無參后台方法";
        }
   console.log("<%= BFunOne()%>");   //這是可以調用的

再來看看有參的,或許你說你知道可以 <%# BFunOne(Eval(".."))%>,這個是在控件中才能使用的,我們說的這種情況就是一般的調用后台方法。

 

 //后台有參方法
        public string Test(string o)
        {return o;
            //無法做判斷的
            //string aa = "";
            //switch (o)
            //{
            //    case "1":
            //         aa="11";
            //        break;
            //    case "2":
            //        aa = "22";
            //        break;
            //    case "3":
            //        aa = "33";
            //        break;
            //    default:
            //        break;
            //}
            //return aa;
        }
                var A = 1 + "";
                var a = '<%=Test("'+A+'")%>';  //字符串的格式一定要對
                console.log(a);

 

 

你會驚奇的發現居然可以啊,當然這是針對傳遞的參數在后台不用做編程的。我們仔細來看看傳遞過去的參數是什么。

  //聲明一個字符串來接受傳過來的值
        public string strT= "";
        //后台有參方法
        public string Test(string o)
        {
            strT = o;
            return o;
}
                var A = 1 + "";
                var a = '<%=Test("'+A+'")%>';
                console.log(a);
                console.log(<%= strT %>);   //來看接受的是什么值   你打斷點看是一樣的

沒有看錯,就是一個字符串,如果你了解網站的運行順序的話就很好理解了,網站是先執行后台程序,然后再執行頁面。

 來看看

    <%-- 我們再頁面上添加一個控件做測試,初始值為0--%>
        <asp:HiddenField ID="hfID" runat="server" Value="0" />
  //在調用后台方法前把這個控件的值改下
                $("#hfID").val("123");
                var A = 1 + "";
                var a = '<%=Test("'+A+'")%>';
    //后台有參方法
        public string Test(string o)
        {
            string aa = hfID.Value;
            strT = o;
            return o+“,”+aa;  
}

也就是說,當我們執行后台方法的時候,前台還沒執行呢。

解決方案:

如果你想再后台根據你傳的值做處理怎么辦,一個萬能的方法就是用一般處理程序去解決。

 


免責聲明!

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



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