【问题标题】:How To Create an Anchor In a List Item in ASP.NET WebForms如何在 ASP.NET WebForms 的列表项中创建锚点
【发布时间】:2013-01-16 08:17:58
【问题描述】:

我想创建这样的嵌套标签:

<ul>
    <li><a href="">xxx</a></li>
</ul>

然后我在页面中添加一个BulletedList控件:

<asp:BulletedList runat="server" CssClass="ad-thumb-list" ID="ImageItem">
</asp:BulletedList>

然后我在代码中添加ListItem

    DataTable dt = queryDb(xx);
    foreach (DataRow dr in dt.Rows)
    {
        HyperLink hl = new HyperLink();
        hl.NavigateUrl = string.Format("../stream.aspx?type=={0}",dr["type"]);

        ListItem li = new ListItem();
        //here how to add the `hl` to `li`
        ImageItem.Items.Add(li);
    }

在上面的代码中,我不知道将a标签添加到li

我想用这样的东西:

li.Controls.Add(hl); 

但这似乎是不可能的。

有什么问题?

【问题讨论】:

  • 我认为 BulletedList 是一个纯文本控件。不识别 HTML。如果你不需要子弹,你可以试试asp:DataList

标签: asp.net webforms web-controls


【解决方案1】:

你需要设置DisplayModeHyperlink(BulletedListDisplayMode.HyperLink)

    ImageItem.DisplayMode = BulletedListDisplayMode.HyperLink;

    foreach (DataRow dr in dt.Rows)
    {
        ListItem li = new ListItem("PLACE-THE-LINK-TEXT", string.Format("../stream.aspx?type=={0}",dr["type"]));
        //here how to add the `hl` to `li`
        ImageItem.Items.Add(li);
    }

【讨论】:

  • 这行得通。但是,如果我想在a 标签内添加一个img 标签呢?
【解决方案2】:

您可以执行以下操作:DisplayMode Property

ListItem item = new ListItem("MicroSoft", "http://www.microsoft.com");
ListItem item1 = new ListItem("Google", "http://www.google.com");
BulletedList1.Items.Add(item);
BulletedList1.Items.Add(item1);

【讨论】:

    【解决方案3】:

    ListItem 不是容器,因此不提供要添加的控件。请改用 ListViewDataItem

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-08
      • 2015-01-19
      • 2013-01-19
      相关资源
      最近更新 更多