如何通过JavaScript构建Asp.net服务端控件

摘要

虽然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 ,谢谢合作

时间: 2024-10-31 05:32:44

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

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

简单记录: 模糊查询的select语句的拼写 public List<Model.Student> GetWhereStudent(string name, string sub, string isG) { List<Web.Model.Student> lt = new List<Model.Student>(); string sql = "select * from SC_Student where studentName like @n and [e

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

atitit.Atitit.  Gui控件and面板-----服务端控件 java struts的实现最佳实践 1. 服务器控件的类别 1 1.1. 数据控件:该类控件可细分为两种类型:数据源控件和数据绑定控件. 1 1.2. 站点导航控件: 1 1.3. WebParts控件: 1 1.4. 登录控件: 1 1.5. Ajax 控件 1 2. jsf 2 3. Apache  ecs 2 4. Custom ui control... 2 5. Struts UI Tags display d

GridView 服务端控件添加 js

针对服务端控件的 CommandField “Delete” 添加 js $("#GridView1").find("a").each( function() { var text = $(this).html(); if (text == "Delete") { var td = $(this).parent().parent().children().eq(0); $(this).on("click", function(

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

1. 服务器控件是可被服务器理解的标签.有三种类型的服务器控件: 1 1.1. HTML 服务器控件 - 传统的 HTML 标签 1 1.2. Web 服务器控件 - 新的 ASP.NET 标签 1 1.3. Validation 服务器控件 - 用于输入验证 1 2. HTML 服务器控件 1 3. - Web 服务器控件 2 4. 标准服务器控件可分为以下6种类型: 2 4.1. (1)标准控件:主要是指传统的Web窗体控件,例如TextBox.Button.Panel等控件.它们有一组标准

Asp.Net服务端的基本控件

今天开始把最基础的Asp.Net服务端基本控件学习巩固了一下 1.Asp.Net服务端控件是Asp.Net对HTML的封装,在C#代码中就可以用txt1.Text="指定值"这种方式修改 input的值,Asp.Net会将服务端控件渲染成HTML代码输出给浏览器,服务端控件是Asp.Net非常容易上手,也非常吸引初学者,但也是被人诟病的东西.因为它会传输很多无法的东西,如viewstate. 服务端控件在内网或互联网系统的后台部分等访问频率不高的地方还是很适合的. 服务端控件只能用po

ASP.NET 3.5控件和组件开发技术之客户端回发/回调揭密

本文摘录自<纵向切入ASP.NET 3.5控件和组件开发技术>. 对于服务端控件元素,比如ASP.NET的Button标准服务端控件在提交时可以自动把请求发送到服务端处理,这样的控件我们不用自己处理它们的事件回发:但对于呈现不引起回发的HTML元素,如“文本框”(TextBox)或“链接按钮”(LinkButton),而希望由控件启动回发,则可以在ASP.NET中通过依靠客户端脚本的事件结构进行编程来实现这一功能.    完整地处理一个事件则还需要回发和捕捉.捕捉是IPostBackEvent

【Asp.net】——Web控件与HTML控件的区别

在看Asp.net视频的过程中,遇到对控件的一些解释,通过查询资料,简单的说说这二者的区别. 控件位置 在VS中,HTML控件位置在: Web控件位置: 控件样式 HTML控件: 除了几个特殊的控件:Textarea.Table.Image.Select.Horizontal Rule.Div,其余控件都有带有input,并且 与Web控件最明显的区别是:HTML控件没有 "runat="server""字样. Web控件: 拥有关键字:asp和"runa

android如何与asp.net服务端共享session

近期需要实现一个功能,就是需要通过发送短信进行注册,现在想把短信验证码放到服务器的session值中,当客户端收到短信并提交短信码时由asp.net服务端进行判断,那么如何共享这个session那么需要在android客户端中添加几行代码.如下操作.第一次数据请求时就获取这个cookie的名称并且得到这个cookie的值,这个即是sessionid的值并保存在一个静态变量中,然后在第二次请求数据的时候要将这个sessionid一并放在Cookie中发给服务器,服务器则是通过这个sessionid

在ASP.NET 的服务器端控件中有三种关于 ID 的属性

在ASP.NET 的服务器端控件中有三种关于 ID 的属性,即 ID, ClientID 和 UniqueID. ID 表示控件的服务器端编程的标识符,我们写"服务器端的代码",就要用到这个 ID, 通过这个 ID 可以在服务器端对服务器端控件的属性.方法和时间进行编程访问.(可写) ClientID 表示由服务器端生成的客户端控件的ID,"经常用于在客户端脚本中访问服务器控件所呈现的 HTML 元素".一般情况下与服务器端的 ID 相同,有时,不能为控件生成唯一的