【发布时间】:2023-04-07 06:20:01
【问题描述】:
假设我有一个从数据库中检索到的字符串,例如:
“Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et {{Hyperlink|navigateurl='/foo.aspx'}} dolore magna aliquyam。”
此字符串现在可以分配给标签的 Text-property。
我想要的是解析 {{Hyperlink|navigateurl='/foo.aspx'}} 并将其替换为
<asp:HyperLink ID="IDLink" runat="server" Text="foo" NavigateUrl="/foo.aspx"/>
并将包括超链接控件在内的整个文本分配给标签。
这可能吗?我想我可以使用反射来创建控件并设置属性。 (HyperLink-Control 只是一个例子) 但是我可以设法将 asp.net 控件插入回字符串中以确保超链接呈现为服务器控件吗?
我希望你明白我想要什么。如果没有,请随时发布 cmets。
编辑1:
“分配整体”是什么意思 包含超链接控件的文本 给标签。”?你能解释一下吗? 这样做的原因是什么?
我认为将控件分配到字符串中是行不通的,因为 asp.net 控件无法放入字符串中。
经过一番思考,我找到了实现目标的方法。那将是创建一个占位符(我将其命名为 A)。其中将添加一些文字控件。此外,我将创建一个占位符(我将其命名为 B),将我的超链接添加到 B,然后将 A 添加到 B。 但我认为这是矫枉过正的方式。
我开始考虑这个的原因是为了在不替换字符串中出现的情况下访问 Server.MapPath。我希望能够在我的 CMS 中使用相对路径,这些路径像超链接中的 NavigateUrl 属性一样呈现。 尽管如此,我认为我关于动态创建的问题值得思考
【问题讨论】:
-
"assign the whole text including the HyperLink-Control to the Label."是什么意思?你能解释一下,这样做的原因吗?
标签: c# asp.net controls rendering