zoukankan      html  css  js  c++  java
  • 打造颠覆你想象中的高性能,轻量级的webform框架---js直接调后台(第二天)

    问题2: 每次与后台打交道 都需要写一些自己都看不太懂的事件,而且传参数很麻烦,这就是.net 封装的事件,如何解决呢?

           首先不要以为写webfrom事件,都需要通过 服务器控件来绑定后台的事件,其实说白了绑定的事件其实都是form表单提交,而且还都是id为form1的表单提交。

           如果你不知道这些,那么你为了调用前台的方法, 还要写onclientclick ,如果 美工做出来的效果的是 一个 div  或者 一个span ,滑动的时候,点击的时候,滚动的时候,都想与 后台进行交互,而且还要在 任务没有完成时实现进度条 ,完成后进度条消失,一般人的想法是使用 ajax,写过ajax的人都知道写ajax很麻烦,而且代码可读性,维护性,扩展性都不好,为什么我们可以自己写js 方法直接调用后台呢?

        说了这么多废话,其实我想说的 ,我们需要 创造一个 js 的方法    goHouTai(方法名,参数),  然后直接就能执行后台代码,并且自动的将 参数传到后台,并且将直接执行后台的代码,请问有这种方法吗?,.net 不是自带的,但是我们可以自己写啊!!!!!

        首先来看实现的思路,我们是否可以这样封装方法呢?

        1.在页面放置 2个  隐藏控件,一个隐藏控件用来存方法名,一个隐藏控件用来存 参数 ,例如  

    <asp:HiddenField runat="server" ID="fangfa"/>
    <asp:HiddenField runat="server" ID="canshu"/>

    2.然后使用jquery  模拟表单提交 ,将方法名 ,参数放入隐藏控件中,然后执行表单提交,例如:

    function submitForm(fangfa,canshu)
    {
    $("#fangfa").val(fangfa);
    $("#canshu").val(canshu);
    $("#form1").submit();
    }

    3.  后台在 Page_Load  中,根据传进来的参数名字不同就可以,执行后台的方法了,例如:

    protected void Page_Load(object sender, EventArgs e)
    {
    if (!Page.IsPostBack)
    {
    }
    else 
    {
    switch (fangfa.Value) 
    {
    case "test":
    test(canshu.Value);
    break;
    }
    }
    }
    

    4.然后我们来调用我们的方法:

        <input   type="button"  value="test"  onclick="submitForm('test','aaaaaaa')"/>

    测试下能否执行(测试通过)

    注意事项: 我们需要将所有的 控件在 form1 的表单中

          

    这样写我们基本就解决了 直接通过 js  传 方法名和参数就可以调用后台的方法,也达到了我们的目的!!

      

    这样写 我们不就可以通过 传方法 和参数就可以执行执行后台代码了,如果细心的人会发现,这样写很麻烦,而且每个页面都要这样写,岂不是代码冗余 很严重,而且如果传入多个参数怎么办,岂不是要分割字符串,如何去优化 这里的代码,我会在下期中慢慢去分解 去消化!!!

       

       

        

  • 相关阅读:
    PAT顶级 1024 Currency Exchange Centers (35分)(最小生成树)
    Codeforces 1282B2 K for the Price of One (Hard Version)
    1023 Have Fun with Numbers (20)
    1005 Spell It Right (20)
    1092 To Buy or Not to Buy (20)
    1118 Birds in Forest (25)
    1130 Infix Expression (25)
    1085 Perfect Sequence (25)
    1109 Group Photo (25)
    1073 Scientific Notation (20)
  • 原文地址:https://www.cnblogs.com/liujing379069296/p/7256374.html
Copyright © 2011-2022 走看看