ASP.NET PartialHyperLink 控件
介绍一个小型用户控件,

引言
最近我需要本地化一些 .ASPX 文件。我使用了标准方法,在 Visual Studio .NET 2008 中 .ASPX 文件的设计视图里,点击工具栏上的“生成本地资源”。
其中,我使用了 ASP.NET HyperLink 控件来创建超链接,以及 ASP.NET Localize 控件来显示文本。
让我感到麻烦的是,我经常遇到包含超链接的句子。例如:“要获取更多信息,请访问我们网站上的支持页面”。
在上面的例子中,我必须将句子分成两个 Localize
控件和一个 HyperLink
控件。对于一个懒惰的开发者来说,这太麻烦了。此外,“分割位置”可能因不同的语言而异,并且超链接在每种语言中也可能不同。
PartialHyperLink 控件简介
为了更方便地处理上述情况,我编写了一个轻量级的控件,名为“PartialHyperLink
”。
该控件只包含一个 .CS 文件,您可以将其放入您的(Web)项目中并立即使用。
它包含以下特性:
- 模仿了标准
HyperLink
控件最常用的特性 - 具有可以本地化的
NavigateUrl
属性 - 具有一个
Text
属性,该属性可以包含起始和结束占位符,以指示您希望点击的超链接的位置
Using the Code
要使用该控件,只需将“PartialHyperLink.cs”文件放入您的 Web 项目的“App_Code”文件夹中即可。
接下来,通过在页面的顶部编写以下行,在您要使用的每个 .ASPX 页面上注册该控件
<%@ Register Namespace="App_Code" TagPrefix="zeta" %>
最后,通过编写类似于以下代码的代码来创建控件的实例
<zeta:PartialHyperLink
runat="server"
ID="MyHyperLink"
Text="This text that {0}includes a hyperlink{1} is inside a single control"
NavigateUrl="http://www.zeta-test.com"
meta:resourcekey="MyHyperLinkResource1" />
使用占位符“{0}
”和“{1}
”在 Text
属性中标记可点击超链接的开始和结束位置。
就是这样!
我包含了一个小型示例项目来演示如何使用该控件。如果您打开并运行该项目的解决方案,请尝试切换浏览器的语言,以查看从资源加载的不同文本和超链接。我包含了英语和德语,以便您了解一下。
结论
在本文中,我向您展示了一个小型用户控件,该控件尝试简化翻译带有超链接的文本的任务。
也许我走错了方向,并且已经有一种内置的方法可以实现我在控件中实现的功能。如果是这样,请告诉我,我很想知道!
此外,如果您有任何问题、意见、错误报告或建议,请在本文的评论区下方写下来。谢谢!
历史
- 2009-06-12
- 首次发表于 The Code Project