65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET PartialHyperLink 控件

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.84/5 (10投票s)

2009 年 6 月 13 日

CPOL

2分钟阅读

viewsIcon

41945

downloadIcon

228

介绍一个小型用户控件, 用于简化带有超链接的文本的本地化。

引言

最近我需要本地化一些 .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
© . All rights reserved.