这个实践示范了如何创建依赖于 Web 部件个性化的 ASP.NET 用户控件,并在 Web 页面中提供用户特定的默认值。

ASP.NET Web 部件控件集允许你建立拥有模块化布局的 Web 页面,并且允许用户按照自己的偏好来更改外观和内容。一个关键的 Web 部件特征,也就是常说的个性化,允许你为每个页面保存用户特定的设定以便在未来的浏览器会话中重用这些设定。

使用 Web 部件和个性化,你可以为多数 Web 应用程序建立包括一个有用特征的 Web 页面:在窗体中提供给用户特定的默认值的能力。这个实践示范了如何实现一个可以当成可个性化 Web 部件控件使用的用户控件来提供给用户特定的默认值。这种开发方式在你创建控件的时候是有用的,例如,某个为客户服务代理填写在线窗体的应用程序。Web 部件和个性化能力允许你的页面认可每一个代理。用户控件允许每个代理保存窗体字段中的默认值,并且默认值能够被自动填充到页面的后续访问中。

提示:你在这个实践中所创建的用户控件并没有继承自 WebPart 类。但是在这个实践中你将学习到用户控件可以模拟成一个 WebPart 控件。在该实践中,你将把这个用户控件添加到一个 WebPartZoneBase 区域中。这样做允许 ASP.NET 在一个 GenericWebPart 控件中封装该用户控件。然后这个用户控件将会变得像其他任何一个 WebPart 控件一样,帮助你探索个性化。

在这个实践中,你将学习到:

  • 创建一个用户控件,该控件的属性能够被个性化,并且属性的值能够被长期保存。

  • 在 Web 页面的窗体中显示用户特定的默认值。

  • 在一个真正的 WebPart 控件区域中使用用户控件。

提示:尽管使用 ASP.NET 档案能够开发这种类型的应用程序。但是,在这个实践中你不需要为了在整个应用程序中重用而保存用户的相关信息。相反,你会在每个页面的基础上为每个控件保存用户特定的偏好设置。更多关于档案的信息,请参考“ASP.NET 档案属性概览”。

先决条件

要完成这个实践,你需要:

  • 在计算机中安装并配置将要托管网站的 Internet 信息服务(IIS)。关于 IIS 的安装与配置的详细内容,请参考 IIS 帮助文件,或者参考 Microsoft TechNet 网站(Internet 信息服务 6.0 技术资源)中的在线 IIS 文档。

  • 一个能够识别单独用户的 ASP.NET Web 网站。如果你已经有这样的一个已配置网站,你可以把它当成这个实践的开始。如果没有,关于创建虚拟目录或网站的详细内容,请参考“ASP.NET 实践:在 IIS 中创建并配置虚拟目录”。

  • 一个已配置的个性化提供者和数据库。Web 部件的个性化默认时是被启用的,并且它使用 Microsoft SQL Server 标准版的 SQL 个性化提供者(SqlPersonalizationProvider)来保存个性化数据。该实践使用了 SSE 和默认的 SQL 提供者。如果你已经安装 SSE,则不需要进行额外的配置。SSE 是作为 Micrisoft Visual Studio 2005 的一个可选部分被安装的,或者也可以从 Microsoft.com 上下载。要使用一种完整版本的 SQL Server,你必须安装并配置一个 ASP.NET 应用程序服务数据库,并且配置 SQL 个性化提供者来连接到这个数据库。关于详细内容,请参考“为 SQL Server 创建并配置应用程序服务数据库”。你也可以创建并配置一个自定义的提供者来使用其他的非 SQL 数据库或者存储方案。关于详细内容和代码实例请参考“实现成员资格提供者”。

创建一个可个性化的用户控件

在这个部分,你将创建一个为代理信息窗体而提供用户界面(UI)的用户控件。这个控件同样为名称和电话信息暴露了可个性化的属性。

提示:你不需要手动启用 Web 部件的个性化;默认时它已经是被启用的。更多关于个性化的信息,请参考“Web 部件个性化概览”。

如何为用户控件创建可个性化的属性
  1. 在文本编辑器中,创建一个新文件。添加下列控件声明到文件的开始部分,连同一个 <script> 标记对一起。你的代码看起来应该像下列代码实例。

    <%@ control language="C#" classname="AccountUserControl" %>
    <script runat="server">
    </script>
    
  2. <script> 标记中,添加代码来创建两个可个性化的属性:一个命名为 UserName,另一个命名为 Phone,如下列实例所示。

    提示:每个属性都使用了一个 Personalizable 参数。这个参数允许 Web 部件个性化在提供者的数据库中保存属性的值。

      [Personalizable]public string UserName{get{if(Textbox1.Text == null | Textbox1.Text.Length < 0)return String.Empty;elsereturn Textbox1.Text;}set{Textbox1.Text = value;}}[Personalizable]public string Phone{get{if(Textbox2.Text == null | Textbox2.Text.Length < 0)return String.Empty;elsereturn Textbox2.Text;}set{Textbox2.Text = value;}}
    
  3. 把文件命名为 AccountUserControlCS.aspx 或 AccountUserControlVB.ascx(取决于你使用的编程语言),并把它保存到网站的根目录。

    安全提示:这个控件中有一个接受用户输入的文本输入框,这存在一个潜在的安全隐患。Web 页面中的用户输入能够潜在地包含有恶意的客户端脚本。默认时,ASP.NET Web 页面会检查用户输入以确保输入不包含 HTML 元素或脚本。只要该验证被启用,你就不需要明确地在用户输入中检查脚本或 HTML 元素。更多信息,请参考“脚本开发概览”。

现在你已经添加了用来保存默认值的可个性化属性,你可以为用户控件添加 UI 控件来显示用户的名称和电话号码。

如何为用户控件添加 UI 控件
  1. <script> 标记的下面,添加被 <div> 标记包围的一个 Label 控件和一个 TextBox 控件来包含用户的名称,如下列代码实例所示。

    <div>
    <asp:label id="Label1" runat="server">Name</asp:label>
    <asp:textbox id="Textbox1" runat="server" />
    </div>
    
  2. 在刚才添加的控件下面,添加被 <div> 标记包围的一个 Label 控件生个 TextBox 控件来包含用户的电话号码,如下面所示。

    <div>
    <asp:label id="Label2" runat="server">Phone</asp:label>
    <asp:textbox id="Textbox2" runat="server" />
    </div>
    
  3. 在刚才添加的控件下面,添加一个被 <div> 标记包围的 <Asp:Button> 元素,用于在执行回传的时候保存用户的信息。你的代码看起来应该像下列实例。

    <div>
    <asp:button id="Button1" runat="server" text="Save Form Values" />
    </div>
    
  4. 保存文件。

把用户控件当成 Web 部件控件来引用

现在你已经创建了一个包含可个性化属性的用户控件,现在你可以创建一个 Web 窗体页面并把这个用户界面当成 Web 部件控件来托管。把控件当成 Web 部件控件来托管是个性化特征能够正常工作所必需的。

如何把用户控件当成 Web 部件控件来引用
  1. 在文本编辑器中,创建一个新文件。添加下列页面声明到文件的开始部分。

    <%@ page language="C#" %>
    
  2. 在页面声明的下面,添加一个声明来引用你在前面所创建的用户控件,如下列实例所示。

    <%@ register tagprefix="uc1" tagname="AccountUserControl" src="AccountUserControlcs.ascx"%>
    
  3. 在控件的引用下面,添加下列基本页面结构以把用户控件当成 Web 部件控件来托管。

    提示:要让用户控件像 Web 部件控件那样工作,页面必须包含一个 <Asp:WebPartManager> 元素,并且用户控件必须包含在 <Asp:WebPartZone> 元素的某个 <ZoneTemplate> 元素中,如下列代码实例所示。

    <html>
    <head runat="server"><title>Personalizable User Control</title>
    </head>
    <body><form id="form1" runat="server"><asp:webpartmanager id="WebPartManager1" runat="server"  /><asp:webpartzone id="zone1" runat="server" headertext="Main"><zonetemplate><uc1:AccountUserControl runat="server" id="accountwebpart"title="Agent Information" /> </zonetemplate></asp:webpartzone></form>
    </body>
    </html>
    
  4. 把文件命名为 HostAccountControl.aspx 并保存到与前面的用户控件相同的目录中。

    你现在已经创建了一个可以个性化的用户控件,并且在一个 Web 窗体页面中把它当成 Web 部件控件来进行引用。

最后的步骤就是测试你的控件。

如何测试可个性化的用户控件
  1. 在浏览器中载入 HostAccountControl.aspx。

  2. 在 Name 和 Phone 字段中输入值,并单击 Save Form Values 按钮。

  3. 关闭浏览器。

  4. 在浏览器中重新载入该页面。

    你在前面输入的值应该会在窗体中出现。这些值被保存在可个性化的属性中,并且当你重新在浏览器中载入该页面的时候会从数据库中被恢复。

  5. 在窗体中输入新的值,但是不单击按钮来保存它们。然后关闭浏览器。

  6. 在浏览器中重新载入该页面。你最初输入并保存在可个性化属性中的值仍然出现在窗体中。

余下的步骤

这个实践已经演示了创建拥有可个性化参数的用户控件时的相关基本任务。你创建了一个能够允许你为特定控件或者页面中的用户设定进行保存的控件,并且在用户在新的浏览器会话中重新访问页面的时候显示这些被保存的设定。

附加的探索建议包括:

  • 研究其他创建 Web 部件页面的相关组件。相关介绍,请参考“ASP.NET 实践:创建 Web 部件页面”。

  • 学习更多关于用户控件的使用。详细内容,请参考“ASP.NET 用户控件概览”。

  • 学习如何创建你自己的自定义 Web 部件控件,以提供比用户控件和所有拥有 Web 部件特征的控件还要更多的可编程控件。更多信息,请参考“ASP.NET 实践:把用户控件视为 Web 部件控件”。

转载于:https://www.cnblogs.com/Laeb/archive/2007/01/02/610191.html

ASP.NET 实践:使用用户控件实现 Web 部件的个性化相关推荐

  1. 关于ASP.Net页面上用户控件相互调用的方法 .

    引至:http://blog.csdn.net/aqgsh/article/details/6941466 最近做一个项目,在首面上有几个用户控件,其中一个是显示当前登录的用户名,位于名为PageHe ...

  2. 【ASP.NET】认识HTML控件与WEB控件

    概念 HTML控件:HTML语言标记,标记在以往的静态页面和其他网页里存在,不能再服务器端控制,只能在客户端通过JavaScript等程序语言来控制 WEB控件:服务端控件,ASP.NET特有. 形式 ...

  3. (转) ASP.NET 2.0:使用用户控件和定制的Web部件个人化你的门户网站(二)

    Web部件目录 我们已经见过了如何在 WebPartZones 控件中事先放入Web部件.你还可以用另外一种方法完成这个功能,那就是允许用户在运行时添加新的Web部件.通过使用 CatalogZone ...

  4. ASP.NET重用代码技术 - 用户控件技术

    作者: 苏红超 使用ASP.NET中的代码绑定技术来使得代码重用变得简单可行.我们发现,利用代码绑定技术我们可以容易的将我们的代码和内容分离开来,利用它可以建立可重用的代码,只是这种技术本身也存在着一 ...

  5. ASP.NET的用户控件

    本文介绍如何在ASP.NET中创建用户控件,控件属性的动态修改以及控件的事件出发机制. 简介 ASP.NET的服务端控件使得Web开发工作变得更为简单,功能更为强大.我们介绍过如何在ASP.NET页面 ...

  6. ASP.NET用户控件的创建和使用

    ASP.NET用户控件的创建和使用 1. Web用户控件概述 Web用户控件是一种服务器控件,它与ASP.NET页面有着同样的所见即所得的特点,并以.ascx为扩展名存储为文本文件,同样具有自己的界面 ...

  7. VS2008 Tips #008 如何创建ASP.NET Web 用户控件并包含在Web 页面中

    在 Visual Web Developer 中创建 ASP.NET Web 用户控件就像 ASP.NET Page 页面一样简单. 以下是创建步骤: 1.打开您想添加用户控件的站点. 2.右键点击站 ...

  8. web developer tips (8):创建web用户控件并包含在web页面里

    原文地址: How to create an ASP.NET Web User Control and include it in your web page 使用Visual Web Develop ...

  9. 开发和使用Web用户控件

    在 ASP.NET 的开发中 Web 用户控件的开发和使用是一项必不可少的技术,在对这项技术的一番研究后写下了这篇随笔,不过确实担心这么初级的东东放到原创首页上会被拍砖头. 1.简介 2.创建 Web ...

最新文章

  1. python详细安装教程linux-Linux系统如何安装Python?新手教程
  2. 原因代码10044-Erdos number Time limit exceeded
  3. opencv下载安装及介绍【初学,后续继续更新】
  4. 【杂谈】GitHub上有哪些好用的爬虫(从Google百度,腾讯视频抖音,豆瓣知乎到不可描述)
  5. 表格行内编辑增删改查
  6. Cracking The Coding Interview 9.1
  7. QPSK信号调制之ASCII码
  8. 支付宝的一些小问题,注意事项等等,等用得时候在来写写
  9. 关于在阅读nnUNet代码中的一些小细节的记录(三)
  10. python tts库_python 使用百度tts 库合成语音
  11. R语言如何下载及安装?——R语言安装及环境配置1
  12. android pdf417条码,条码控件Dynamsoft Barcode Reader教程:从PDF417驾驶执照中提取数据...
  13. 智能门锁电路图_智能门锁工作原理分析及智能门锁基本工作流程技术原理介绍...
  14. 如何快速将多个文件合并为一个文件?
  15. 公主与骑士-ZZUOJ
  16. List 接口和常用方法
  17. 用Python学《微积分B》(单调性与极值,凸性与拐点)
  18. linux 校园网 自动认证,关于在Linux操作系统下校园网 瑞捷的认证(xrgsu)
  19. mysql已启动但无法连接_MySQL无法正常启动,Navicat连接出错,解决2003问题
  20. Detecting Holes in Point Set Surfaces 笔记

热门文章

  1. 没人可以通过勤劳工作发财致富
  2. 谈判中,要学会“留一手”
  3. 成功的本质是——做减法
  4. 为什么Windows的兼容性这么强大,到底用了什么技术?
  5. 引介 | RLP 编码和解码
  6. sync/atomic 库使用小结
  7. C++中如何使用大整数__int 128
  8. aws rds监控慢sql_AWS RDS SQL Server的多可用区配置
  9. powerbi发布本地_PowerBI中本地数据的注意事项
  10. sql t-sql_增强的PolyBase SQL 2019-使用t-SQL的外部表