zoukankan      html  css  js  c++  java
  • 利用ASP.NET组件实现公共元素的重用

    什么是Web User Control
    如果你记得Microsoft公司先前在组建开发上的尝试,你一定很熟悉ActiveX控件或者ASP包含文件。这些控件和引用文件可以实现功能的分离和重用。ASP.NET Web User Control(网络用户控件)就是它们最新的成员。一个网络用户控件(Web User Control)就是一个独立的实体,它可以在其他的元素(elements)如Web窗体 (Web forms)中被调用。

    大多数Web程序的一个公共元素就是导航条,一般放在页面的左侧。导航条在用户程序应用中往往被认为是静态的(或接近于静态),这对于导航条代码的编写是适得其反,这将大大影响你的开发时间。当你对导航条进行修改时这种副作用就更为严重,此时就是网络用户控件(Web User Control)大显身手的时候了。

    独立的元素(elements)
    网络用户控件(Web User Control)可能简单也可能复杂,这要根据你的需要来定夺。而且它也有可能包含一些其他网络用户控件(Web User Controls)。

    下面这个简单的例子就可以显示出这些元素的强大功能和实用性,我将为一个非常简单的站点导航条元素(elements)建立一个用户控件(control)。导航条的内容是用HTML编写。

    〈div style="FONT-WEIGHT: bold; MARGIN: 30px 0px 0px 50px; CURSOR: hand; COLOR: green; FONT-FAMILY: Georgia, 'Times New Roman', Serif; POSITION: static">
    〈label>Navigation
    〈div>
    〈div style="FONT-WEIGHT: bold; MARGIN: 70px 0px 0px 50px; CURSOR: hand; COLOR: green; FONT-FAMILY: Georgia, 'Times New Roman', Serif; POSITION: static">
    〈a href=" http://www.builderau.com.au/">BuilderAU.com.au
    〈div>
    〈div style="FONT-WEIGHT: bold; MARGIN: 110px 0px 0px 50px; CURSOR: hand; COLOR: green; FONT-FAMILY: Georgia, 'Times New Roman', Serif; POSITION: static">
    〈a href=" http://www.zdnet.com.au">ZDNet Australia
    〈div> 〈br>
    通过使用基本HTML语言中的CSS方式来放置元素,导航条的内容包括两个链接和一个标题,网络用户控件(Web User Controls)的语句放在Web窗体(form)语句的后面,对整页的指令进行声明。

    我们也可以使用下面的指令来完成我们的例子:

    〈@ Control Language="c#" AutoEventWireup="false"
    Codebehind="Navigation.ascx.cs"
    Inherits="WebApplication1.Navigation" %>

    这些语句紧跟在Web窗体(form)指令后。与word的控件不同,代码不是放在页面中。这个不同点是很重要的,因为我经常在进行控件代码的测试时要先在一个规则窗体(Web form)里验证结果。如果运行正确,就可以很容易地粘贴到一个网络用户控件Web User Control中。

    控件(controls)的使用
    控件满足你的要求之后,就可以在一个Web窗体(form)中使用这些控件。一种方法就是从解决方案管理器Solution Explorer拖放到Web窗体(form)模版中(假如你是使用Visual Studio .NET)。另外一种方法就是把它引入到Web窗体(form)的源文件里(在拖放时这些是被自动添加的)。控件在被使用前一定要先在页面中引用。下面就是注册指令的语句:

    〈%@ Register TagPrefix="uc1"
    TagName="Navigation" Src="Navigation.ascx" %>

    注册语句的每一个属性如下:

    * TagPrefix: 分配给用户控件的前缀,这允许你关联相关的控件并避免命名的冲突。
    * TagName: 用户控件的名字,当添加一个控件到页面时使用这一属性。
    * Src: 用户控件文件的路径,控件文件的扩展名是ascx,但在标准的ASP.NET 页面中为aspx 。

    当控件注册成功后,你可以用与TagPrefix和TagName相同的标签名来使用它,接下来的例子就是使用我们的导航条控件。

    〈uc1:Navigation id="Navigation1" runat="server">
    〈/uc1:Navigation>

    由于多个控件可能放置在一个页面中,另外有可能使用多个公共函数或属性,所以你应该注意它与注册指令的一致性。

    另外一个问题就是控件在页面中的放置方式。我们的控件是使用CSS方式来放置它的元素(elements),页面中的元素也同样可以利用这种放置方式实现较好的布置。

    应用展望
    用户控件是一个极好的开发工具,一个程序不可能把它的各个属性赋予用户控件,但是其它的元素却可以实现这些功能。为了开发一个稳定的可升级的应用程序,你的开发小组就应该在开发阶段认真地检查这些元素。在工程开发的后期,把一个元素转化成一个用户控件最终将展示出它的高效性。

    题外话
    你可能会认为用户控件只不过是引入文件,但那并不符合实际情形,实际上开发者掌握了隐藏在控件代码后面的功能——动态地改变用户控件的元素(elements)(虽然引用文件是静态的)。
    我来自:向东博客
  • 相关阅读:
    误操作 rpm -e --nodeps zlib
    Raid阵列之简单介绍
    GpG使用指南
    hadoop系统的端口
    网站日志流量复杂分析
    Flume在企业大数据仓库架构中位置及功能
    Hue的安装与部署
    Hive中的数据倾斜
    Hive的三种Join方式
    如何每日增量加载数据到Hive分区表
  • 原文地址:https://www.cnblogs.com/meil/p/433293.html
Copyright © 2011-2022 走看看