摘要

虽然ASP.NET的服务器控件一直被大家所诟病,但是用户控件(ACSX)在某些场景下还是非常有用的。

在一些极特珠的情况下,我们会使用JavaScript动态的构建页面中的控件,但假设遇到了我要用JavaScript构建一个服务端控件、用户控件时,该怎么办?


我们常常说,服务端控件运行在服端器上,那么这话是什么意思呢?

服务端控件,其本质是一构建HTML语句的封装,以事先编排好的方式,生成一套HTML并通过Http协议返回给客户端。因此,我们所写的服务端控件,在响应HTTP请求时,早已不存在了。——这就叫运行在服务器上

即然如此,那么客户端自然没有解析一个服务端控件的可能。


根据上面的原理,我们可以得知,直接通过JavaScript向body中输出一个服务端控件毫无意义。

那么我们换一个思路,即然服务端控件的构建一定要通过WEB服务器,那么我们可不可以通过一次HTTP请求,并且在不破坏当前面页的情况下,得到服务端控件所转换后的HTML原码呢?

有了这个思路,那么解决方案就很简单了——iframe

我们可以单独设立一个ASPX页面,该页面的BODY上主要就是服务端控件,然后通过IFRAME的加载,将这个服务端控件显示在了当前的页面中。


当然,这只是一种效果,它并没有真正意义上用JavaScript构建了一个服务端控件。而是构建了一个只包含了服务端控件的iframe。

如果变通一下的话,可以通过一些JavaScript代码,将这个iframe中的所有元件,添加到主页面里,并移除iframe,这样,就成为了一个整体的页面,只不过可能会面临一些控件ID冲突的结果。

文章为作者原创,转载请注明出处 http://www.zizhusoft.com/note/show.aspx?id=f562b47a-ddd0-4771-a93d-78e9fdbd7b72 ,谢谢合作

如何通过JavaScript构建Asp.net服务端控件的更多相关文章

  1. (转)客户端触发Asp.net中服务端控件事件

    第一章. Asp.net中服务端控件事件是如何触发的 Asp.net 中在客户端触发服务端事件分为两种情况: 一. WebControls中的Button 和HtmlControls中的Type为su ...

  2. C# 服务端控件 asp:RadioButton 选择选中值

    1.服务端控件RadioButton <asp:RadioButton ID="rbNewUser" runat="server" GroupName=& ...

  3. ASPNET服务端控件练习(一个机试题)

    简单记录: 模糊查询的select语句的拼写 public List<Model.Student> GetWhereStudent(string name, string sub, str ...

  4. .Net Mvc3框架调用服务端控件解决方案

      /*BY:Wangyexin date:2011年4月30日 20:17:38*/ /*说明:.net mvc3框架,View层调用服务端控件,输出到.cshtml文件中显示*/ 1.先说说.ne ...

  5. atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系

    atitit.组件化事件化的编程模型--服务端控件(1)---------服务端控件与标签的关系 1. 服务器控件是可被服务器理解的标签.有三种类型的服务器控件: 1 1.1. HTML 服务器控件  ...

  6. jquery 操作服务端控件,select 控件

    <asp:DropDownList ID="ddl" runat="server"></asp:DropDownList> <se ...

  7. GridView 服务端控件添加 js

    针对服务端控件的 CommandField “Delete” 添加 js $("#GridView1").find("a").each( function() ...

  8. js页面(页面上无服务端控件,且页面不刷新)实现请求一般处理程序下载文件方法

    对于js页面来说,未使用服务端控件,点击下载按钮时不会触发服务端事件,且不会提交数据到服务端页面后台进行数据处理,所以要下载文件比较困难.且使用jQ的post来请求一般处理程序也不能实现文件的下载,根 ...

  9. atitit.Atitit. Gui控件and面板-----服务端控件 java struts的实现最佳实践

    atitit.Atitit.  Gui控件and面板-----服务端控件 java struts的实现最佳实践 1. 服务器控件的类别 1 1.1. 数据控件:该类控件可细分为两种类型:数据源控件和数 ...

随机推荐

  1. Visual Studio 2013 各个版本的产品密钥

    win7/win8/win10系统下Visual Studio 2013各个版本的密钥: Visual Studio Ultimate 2013 KEY:BWG7X-J98B3-W34RT-33B3R ...

  2. web安全之sql注入的防御

    自动把引号转义     1.防御sql注入的基本原则           任何时候不应该改变用户的输入                    比如用户输入单引号,那输出也要是单引号.   几种基本的防 ...

  3. MySQL ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO) 的解决办法和原因

    这两天下载了MySQL5.7.11进行安装,发现到了初次使用输入密码的时候,不管怎样都进不去,即使按照网上说的在mysqld 下面添加skip-grant-tables也是不行,后来研究了两天,终于找 ...

  4. Java socket长连接代码实现

    服务器端程序: import java.io.*; import java.net.*; import java.util.*; public class ChatServer { boolean s ...

  5. 关于<head></head>标签;<form></form>标签

    <head> <title>此处写标题</title> 这是唯一能被用户看到的标记 <meta/>标签: 1.设置字符集:<meta http-e ...

  6. IOS 网络请求

    技术交流新QQ群:414971585 关于网络请求的重要性我想不用多说了吧.对于移动客户端来说,网络的重要性不言而喻.常见的网络请求有同步GET, 同步POST, 异步GET, 异步POST.今天来看 ...

  7. jquery常用选择器和常用方法

    基本选择器 $(”#myDiv”) //匹配唯一的具有此id值的元素 $(”div”) //匹配指定名称的所有元素 $(”.myClass”) //匹配具有此class样式值的所有元素 $(”*”) ...

  8. imovie的快速入门

    iMovie 的边栏区域,可让您整理和选择资源库和事件. 在"资源库"列表中选择资源库或事件时,其媒体会显示在浏览器中. 浏览器 iMovie 中的区域,用于显示"资源库 ...

  9. 关于VR边纹理材质的渲染

    前段时间经常渲染白模线框的图,写了这个脚本方便工作,后来又加了中英文适配,今天贴上来. fn YY_edgestex = ( vr = renderers.current case of ( (vr材 ...

  10. ListView的属性及方法详解

    本文转载于:http://blog.csdn.net/vector_yi/article/details/23195411 近期在重新学习Android控件知识,目前进行到ListView,感觉这是一 ...