• 前台和后台互相调用方法


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

    后台调用前台的方法比较简单,我们先来看看。

       //我再前台声明了一个有参方法 无参的一样的
                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;  
    }

    也就是说,当我们执行后台方法的时候,前台还没执行呢。

    解决方案:

    如果你想再后台根据你传的值做处理怎么办,一个万能的方法就是用一般处理程序去解决。

  • 相关阅读:
    rpm yum 等命令无响应的解决方法
    ulimit open files linux打开文件数设置验证
    解析XtraBackup备份MySQL的原理和过程(转)
    Xtrabackup之innobackupex备份恢复详解(转)
    Linux中内存查看命令free详解(转)
    mysql innobackupex xtrabackup 大数据量 备份 还原(转)
    Percona Xtrabackup备份mysql(转)
    安装完 MySQL 后必须调整的 10 项配置(转)
    MySQL 5.5 服务器变量详解二(转)
    MySQL 5.5 服务器变量详解一(转)
  • 原文地址:https://www.cnblogs.com/Sea1ee/p/7240340.html
Copyright © 2020-2023  润新知