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

  

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

打造 高性能,轻量级的 webform框架---js直接调后台(第二天)的更多相关文章

  1. 打造颠覆你想象中的高性能,轻量级的webform框架---js直接调后台的封装(第三天)

    如果你没有看我第二天写的内容的,我想你是看不懂的!!!! 好了,废话不多说,怎么才能让我们的代码变得牛逼起来呢?怎么封装我们的代码呢?我们不可能 每个页面都需要那样写吧,那我们来一步一步来封装 我们的 ...

  2. 打造颠覆你想象中的高性能,轻量级的webform框架---无刷新提交后台并返回参数(第五天)

    问题5:  使用aspx 页面执行后台方法,总是要刷新整个页面?我想提交后台不刷新页面,同时返回参数 执行前台的js 脚本,就是说类似于像 ajax 的效果一样,那我们该怎么做呢? 大家是否已经看了前 ...

  3. 打造颠覆你想象中的高性能,轻量级的webform框架-----如何替换webform的垃圾控件(第一天)

    前文描述: 随着.net  推出 MVC框架以来,webform 与 mvc 的争论一直没有停止过,一直以来 mvc 的 拥护者远远高于 webform,但是webfrom的有些优势又是mvc而无法替 ...

  4. 又一个高性能轻量级的iOS模型框架YYModel

    前言 iOS的模型框架其实有很多了,去年研究过Mantle,也了解过JSONModel.MJExtension,最近的项目项目优化的时候,再次考虑,基于轻量级.高性能的考虑,最终选择了YYModel. ...

  5. 使用Ratpack和Spring Boot打造高性能的JVM微服务应用

    使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices wit ...

  6. 一个轻量级分布式RPC框架--NettyRpc

    1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 RPC 框架>,作者用Zookeeper.Netty和Spring写了一个轻量级的分布式RPC ...

  7. [转]轻量级 Java Web 框架架构设计

    工作闲暇之余,我想设计并开发一款轻量级 Java Web 框架,看看能否取代目前最为流行的而又越来越重的 Spring.Hibernate 等框架.请原谅在下的大胆行为与不自量力,本人不是为了重造轮子 ...

  8. 轻量级分布式RPC框架

    随笔- 139  文章- 0  评论- 387  一个轻量级分布式RPC框架--NettyRpc   1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 ...

  9. Dapeng框架-开源高性能分布式微服务框架

    我们公司性质是新零售,公司也有专门的框架组.这群大牛自己开发了一整套分布式微服务框架.我们也在使用这套框架,有很多心得体会. 该框架既Dapeng也!开源github地址:https://github ...

随机推荐

  1. 【javascript】Promise/A+ 规范简单实现 异步流程控制思想

    ——基于es6:Promise/A+ 规范简单实现 异步流程控制思想  前言: nodejs强大的异步处理能力使得它在服务器端大放异彩,基于它的应用不断的增加,但是异步随之带来的嵌套.难以理解的代码让 ...

  2. JQ封装图片预加载插件

    我们知道,图片的加载,特别是资源较大的图片,加载相当耗费时间.为了提高用户体验,不得不使用图片预加载技术来提前加载,以提高用户在浏览时的流畅度. 先来弄明白图片的懒加载和预加载的不同: 1)概念:懒加 ...

  3. js数组及数组应用(冒泡和二分,遍历输出)

    一.定义:1)var arr=new Array(); 加数据:arr[0]=1; 2)定义同时赋值:var arr=new Array(1,2,3,4,5); 3)调用:var arr=new Ar ...

  4. [转] DDD领域驱动设计(三) 之 理论知识收集汇总

    最近一直在学习领域驱动设计(DDD)的理论知识,从网上搜集了一些个人认为比较有价值的东西,贴出来和大家分享一下: 我一直觉得不要盲目相信权威,比如不能一谈起领域驱动设计,就一定认为国外的那个Eric ...

  5. POJ 1207 3N+1 Problem

    更简单的水题,穷举法即可. 需要注意的点: 1.i 和 j的大小关系不确定,即有可能 i>j 2.即使i>j,最后输出的结果也要严格按照输出,亦即如果输入10,1,则对应输出也应为 10 ...

  6. Django rest framework 自定义Exception

    使用Dango rest framework时,有时需要raise APIException到前端,为了统一错误返回格式,我们需要对exception的格式进行调整. 方法: 1. 在project/ ...

  7. Ext template 的使用

    Ext template 的使用 Ext.define('app.view.MyDataView', { extend: 'Ext.panel.Panel', xtype: 'myDataView', ...

  8. kbengine 常见问题汇总

    Q: KBEngine是什么,能用来做什么?A: KBEngine是一个通用网络游戏服务器引擎,适合绝大多数中心拓扑结构的网络游戏,包括但不限于即时和回合制MMORPG.副本类.房间类.卡牌.棋牌等. ...

  9. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到<浅入深出之Java集合框架 ...

  10. javascript面向对象个人理解

    1. javascript面向对象特性:抽象性,封装性,继承性: 2. js中的对象:键值对的集合:比如说{key:value} 3.抽象性:用一个对象描述一个数据,需要抽取这个对象的核心数据:两个必 ...