• 打造颠覆你想象中的高性能,轻量级的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  传 方法名和参数就可以调用后台的方法,也达到了我们的目的!!

      

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

       

       

        

  • 相关阅读:
    Android 面试知识集1
    Android 开发自己的网络收音机2——电台列表(SlidingMenu侧滑栏)
    Android 程序drawable资源保存到data目录
    Android 开发自己的网络收音机1——功能要求及设计方案
    Android内存机制分析2——分析APP内存使用情况
    Android内存机制分析1——了解Android堆和栈
    Android Gallery实现3D相册(附效果图+Demo源码)
    Android 后台发送邮件 (收集应用异常信息+Demo代码)
    纯代码写UI的时候,如何指定style?
    解决SimpleCursorAdapter不能自动更新的问题
  • 原文地址:https://www.cnblogs.com/liujing379069296/p/7256374.html
Copyright © 2020-2023  润新知