打造 高性能,轻量级的 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 传 方法名和参数就可以调用后台的方法,也达到了我们的目的!!
这样写 我们不就可以通过 传方法 和参数就可以执行执行后台代码了,如果细心的人会发现,这样写很麻烦,而且每个页面都要这样写,岂不是代码冗余 很严重,而且如果传入多个参数怎么办,岂不是要分割字符串,如何去优化 这里的代码,我会在下期中慢慢去分解 去消化!!!
打造 高性能,轻量级的 webform框架---js直接调后台(第二天)的更多相关文章
- 打造颠覆你想象中的高性能,轻量级的webform框架---js直接调后台的封装(第三天)
如果你没有看我第二天写的内容的,我想你是看不懂的!!!! 好了,废话不多说,怎么才能让我们的代码变得牛逼起来呢?怎么封装我们的代码呢?我们不可能 每个页面都需要那样写吧,那我们来一步一步来封装 我们的 ...
- 打造颠覆你想象中的高性能,轻量级的webform框架---无刷新提交后台并返回参数(第五天)
问题5: 使用aspx 页面执行后台方法,总是要刷新整个页面?我想提交后台不刷新页面,同时返回参数 执行前台的js 脚本,就是说类似于像 ajax 的效果一样,那我们该怎么做呢? 大家是否已经看了前 ...
- 打造颠覆你想象中的高性能,轻量级的webform框架-----如何替换webform的垃圾控件(第一天)
前文描述: 随着.net 推出 MVC框架以来,webform 与 mvc 的争论一直没有停止过,一直以来 mvc 的 拥护者远远高于 webform,但是webfrom的有些优势又是mvc而无法替 ...
- 又一个高性能轻量级的iOS模型框架YYModel
前言 iOS的模型框架其实有很多了,去年研究过Mantle,也了解过JSONModel.MJExtension,最近的项目项目优化的时候,再次考虑,基于轻量级.高性能的考虑,最终选择了YYModel. ...
- 使用Ratpack和Spring Boot打造高性能的JVM微服务应用
使用Ratpack和Spring Boot打造高性能的JVM微服务应用 这是我为InfoQ翻译的文章,原文地址:Build High Performance JVM Microservices wit ...
- 一个轻量级分布式RPC框架--NettyRpc
1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 RPC 框架>,作者用Zookeeper.Netty和Spring写了一个轻量级的分布式RPC ...
- [转]轻量级 Java Web 框架架构设计
工作闲暇之余,我想设计并开发一款轻量级 Java Web 框架,看看能否取代目前最为流行的而又越来越重的 Spring.Hibernate 等框架.请原谅在下的大胆行为与不自量力,本人不是为了重造轮子 ...
- 轻量级分布式RPC框架
随笔- 139 文章- 0 评论- 387 一个轻量级分布式RPC框架--NettyRpc 1.背景 最近在搜索Netty和Zookeeper方面的文章时,看到了这篇文章<轻量级分布式 ...
- Dapeng框架-开源高性能分布式微服务框架
我们公司性质是新零售,公司也有专门的框架组.这群大牛自己开发了一整套分布式微服务框架.我们也在使用这套框架,有很多心得体会. 该框架既Dapeng也!开源github地址:https://github ...
随机推荐
- Python中如何调用Linux命令
一.使用os模块 In [1]: import os #导入os模块 In [2]: os.system('ls') anaconda-ks.cfg epel-release-7-5.noarch.r ...
- python网络爬虫之scrapy 工程创建以及原理介绍
执行scrapy startproject XXXX的命令,就会在对应的目录下生成工程 在pycharm中打开此工程目录:并在Run中选择Edit Configuration 点击+创建一个Pytho ...
- EntityFramework连接SQLite
EF很强大,可惜对于SQLite不支持CodeFirst模式(需要提前先设计好数据库表结构),不过对SQLite的数据操作还是很好用的. 先用SQLiteManager随便创建一个数据库和一张表:
- 查看表结构命令(mysql和oracle)
MySQL查看表结构SQL语句 = mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create table 表名; ...
- JAVAEE——spring03:spring整合JDBC和aop事务
一.spring整合JDBC 1.spring提供了很多模板整合Dao技术 2.spring中提供了一个可以操作数据库的对象.对象封装了jdbc技术. JDBCTemplate => JDBC模 ...
- 【Android Developers Training】 62. 搭建一个OpenGL ES环境
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 34. 添加一个简单的分享行为(Action)
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- Ionic Demo 解析
Ionic Demo 解析 index.html 解析 1.引入所需要的类库 <link rel="manifest" href="manifest.json&qu ...
- 关于mysql查询数据库时间和系统时间差
1. MySQL数据库表中有两个时间的字段,需要计算他们的时间差: (1)datediff函数来表示时间差. 基本语法: DATEDIFF(datepart,startdate,enddate) 说明 ...
- EBS系统启动&停止&增加表空间&替换首页图片
EBS系统启动&停止&增加表空间&替换首页图片 数据库启动 使用oraprod账号登陆 [root@htdb data]# su oraprod [oraprod@htdb d ...