ASPX中的用户控件与ASP中的INCLUDE方法对比

include|控件

    在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据).

   ASPX的用户控件就与INCLUDE有很大的不同了,它的最大特点就是在于他是以包装好的对象的形式呈现,通过我们的编程,可以将一个公用的事例抽象出来,将一些功能和方法总结出来,作成相应的函数和属性供外部的事件调用,实现完全的类化,最大程度的封装外层用户不需要了解的内部事实,使得其更加具有可维护性,也提高了数据的安全性,更利于程序的发布.

   简单的东西好用,但自然也功能比较少,或者是很不完善的,我们可以自由的将某个文件的包含到指定的ASP文件之中,但是,由于彼此的数据是可以共享的,所以导致,文件的相互依赖性很高,降低了代码可读性,不利于系统的维护,同时,如果被INCLUDE的文件中如果有一个图片,并且被包含的文件与需要包含文件的文件不在同一个目录之下时,被包含的文件的图片的地址必须以需要包含文件的文件中能显示图片的地址为准,如/FILE/INDEX.ASP是主文件(需要包含文件的文件),而/FILE/INCLUDE/TITLE.ASP是被包含文件,而图片地址为/file/title.jpg此时就需要将TITLE.ASP中的图片地址改为title.jpg而不是../title.jpg,否则将无法在主文件中显示图片,超级链接也是同样的问题.

   复杂的ASPX固然解决了很多的问题,如能够在控件文件中自由的设置图片的地址,无须理会引用他的文件在什么目录之下,只要在控件文件中能显示出来的东西,被引用之后依然可以被使用,这使得用户制作的控件具有更多的可重用性,而不象ASP中,对于不同目录下的文件引用相同功能的文件时需要设置两个事实上相同但是图片或者超级链接的地址不同的文件.浪费资源,也使得维护费用更高.当然这些优点也使得文件编写起来也比较麻烦,对于分析上要求有更高的归纳能力,使得控件能更广泛的使用.

时间: 2024-11-28 21:39:13

ASPX中的用户控件与ASP中的INCLUDE方法对比的相关文章

ASPX中的用户控件与ASP中的INCLUDE方法对比_实用技巧

    在ASP的年代里,为了避免经常性重复的劳动,对一些功能相似的区域或者代码,经常作成一个文件,然后通过连接(直接连接或者虚拟连接)的方法引入到ASP网页文件之中,对于一个很大的引用了很多ASP文件就相当于一个文件被分成了很多块,彼此文件之间的数据是可以自由共享的(除了函数之中的数据).    ASPX的用户控件就与INCLUDE有很大的不同了,它的最大特点就是在于他是以包装好的对象的形式呈现,通过我们的编程,可以将一个公用的事例抽象出来,将一些功能和方法总结出来,作成相应的函数和属性供外部

在ASP.NET中使用用户控件

asp.net|控件 [摘要]ASP.NET中提供的用户控件,可以解决ASP中无法解决的代码重用问题,更方便了调试工作中的错误检查.本文通过用户控件实现方法讲解和一个用户控件例程的实现,进一步验证了利用用户控件解决代码重用的可行性和有效性. [关键字]代码重用.用户控件.@Register指令 ASP.NET提供了比传统ASP更好的代码分离方案.在传统的ASP中,要将用Server. Execute执行的ASP文件或事务对象组件的代码分离开,一般只能将代码分离成几个文件,然后使用"include

关于ASP.NET2.0 中的用户控件编程使用

asp.net|编程|控件 今天用了一下2.0中的用户控件,发现使用编程方式使用用户控件,跟1.X 中截然不同. 1.首先,要在所要使用的Page 头部声明引用.如下: <%@ Reference Control="../Controls/AlbumEditor.ascx" %> 2.在后置代码里,从"ASP"空间中就可以找到此控件的类引用了,不过还需要事例一下.-_-! 不明白设计者为什么要这么做,还不如1.1 那样直观.如下:  ASP.Contro

aspnet-请问ASP.NET中web用户控件中使用Session出错,麻烦帮忙解决下,拜托了

问题描述 请问ASP.NET中web用户控件中使用Session出错,麻烦帮忙解决下,拜托了 在用户控件中有下列代码: protected void Page_Load(object sender, EventArgs e) { if (Session["user"] != null) { login.Text = "欢迎你," + Session["user"].ToString().Trim(); login.NavigateUrl = Re

在.net应用程序中使用用户控件

程序|控件 在.net应用程序中使用用户控件 郑佐2004-11-30 做过asp.net的人都知道开发的时候使用用户控件很方便,为功能模块化提供了相当大的灵活性.令人高兴的是开发Windows窗体也可以使用用户控件.这里我们来看看为用户控件添加属性和事件,并实现把消息发送到父容器.本文主要是为没有使用过用户控件的朋友提供一些参考. 用户控件的实现比较简单,直接从System.Windows.Forms.UserControl. public class UserControl1 : Syste

asp.net中显示DataGrid控件列序号的几种方法

asp.net|datagrid|datagrid控件|显示 asp.net中显示DataGrid控件列序号的几种方法 作者:郑佐 2004-9-10 在aps.net中多数据绑定的控件很多,论功能来说,应该属DataGrid最为齐全,但它没有提供现成的显示记录序号的功能,不过我们可以通过它所带的一些参数来间接得到序号,下面来看看怎样得到和显示序号值计算方式如下: (1)在后台 DataGrid.CurrentPageIndex * DataGrid.PageSize + e.Item.Item

请教一个在aspx页的 服务器端控件 的 属性 中使用嵌入代码的问题(&amp;amp;lt;%= %&amp;amp;gt;,&amp;amp;lt;%# %&amp;amp;gt;)

问题描述 最近遇到了一个在aspx页的服务器端控件的属性中使用嵌入代码的问题,请大家看看比如一个链接控件:在NavigateUrl属性中绑定数据,并添加字符串<asp:HyperLinkID="StartMeeting"runat="server"Target="_blank"NavigateUrl='<%#"PagesLecturer/lecture.aspx?HandoutId="+Eval("Han

wpf中的用户控件库项目不能使用WindowsFormsHost??急!!!

问题描述 基于sharpdevelop框架的WPF开发,想在用户控件库项目中使用reportviewer控件,用了WindowsFormsHost,但是运行后不显示reportviewer.如果换成wpf窗体,就能显示reportviewer界面和数据.wpf中的用户控件库项目不能使用WindowsFormsHost吗? 解决方案 解决方案二:WindowsFormsHost是专门为window窗体设计的.放弃吧

在Silverlight 2应用程序中切换用户控件的技巧

摘要 大家都知道,在Silverlight 2应用程序中,每个应用程序将生成一个xap文件,每一个xap文件中只能 设置一个起始的用户控件.如果我们有多个用户控件,需要在不同的ASP.NET页面中加载,最简单的方法 莫过于针对多个用户控件分别建立对应的Silverlight项目,但这种方式有很多的缺点,如我们的样式文 件需要在多个项目中进行拷贝. 准备 现在建立一个项目结构如下图所示,在Silverlight项目中我们有个三个用户控件:ContentPage. DefaultPage.Maste