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  传 方法名和参数就可以调用后台的方法,也达到了我们的目的!!

      

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

       

       

        

  • 相关阅读:
    单元测试大揭密
    浅析C#中 ConcurrentDictionary的实现
    C#中 ??、 ?、 ?: 、?.、?[ ]
    队列-exchange
    matlab绘制一个点
    Ubuntu install of ROS Melodic
    matlab绘制树
    matlab scatter3函数
    多个QDockWidget用程序控制自动tab切换
    基于IFC数据的施工吊装模拟
  • 原文地址:https://www.cnblogs.com/liujing379069296/p/7256374.html
Copyright © 2011-2022 走看看