1

在我进行数据库调用之前,我不确定一个页面上需要多少个链接以及链接指向的位置。因此,我需要在前端的 div 标签内创建“x”个链接。有什么想法可以实现吗?

这是我尝试过的 -

foreach (KeyValuePair<string, string> kvp in attachments)
{
    HyperLink hyp = new HyperLink();
    hyp.ID = kvp.Key;
    hyp.Text = kvp.Value;
    attachmentHiddenDiv.Controls.Add(hyp);
}
4

4 回答 4

2

在您的 aspx 页面中有一个 div,其 runat 属性值设置为“server”

<div id="divLinks" runat="server"></div>

在后面的代码中,您可以遍历项目并创建尽可能多的链接

StringBuilder str=new StringBuilder();

foreach (KeyValuePair<string, string> kvp in attachments))
{
  str.Append("<a href='../target.aspx?id="+kvp.Value+"'>kvp.Key</a>");  
}
divLinks.InnerHtml=str.ToString();
于 2012-04-16T17:59:10.800 回答
2

有几种不同的方法可以做到这一点。最简单的方法是在页面上添加一个 Literal 控件,并将后面代码中的 .Text 值设置为要显示的 Html(您手动构建的链接列表)。

另一种选择是使用中继器并将其绑定到作为数据源的 url 字符串列表,并在 ItemTemplate 中使用 HyperLink 项绑定 NavigateUrl 属性。例如asp:HyperLink 在 Repeater 中使用 XPATH 数据构建 NavigateUrl

于 2012-04-16T17:59:23.377 回答
1

使用文字控件。将文字控件放置在 div 标记内,从 DB 值生成 html,并将文字控件文本属性设置为从 DB 值生成的 html 字符串。

于 2012-04-16T17:56:38.307 回答
0

您可以使用中继器迭代一组对象,为每个对象创建标记。对象将从您的数据库中提取。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.aspx

于 2012-04-16T17:57:30.287 回答