以编程方式将标准和超链接列表项的混合添加到ASP.NET中的项目符号列表中

时间:2013-08-16 20:03:28

标签: c# asp.net css

我正在尝试从数据表构建列表,该函数还需要添加组头。目前我检查一行是否有一个新的组头,并添加一个带有CSS类的列表项,以区别于其他列表项。我想做的是使非标题列表项显示为正常的超链接。我知道你可以将DisplayMode =“HyperLink”添加到.aspx,但这适用于每个元素,包括标题项。我正在寻找关于将链接样式添加到应该具有它们的项目的最佳方法的建议,同时将组标题保留为普通文本。

以下是目前的代码:

aspx:

<asp:BulletedList ID="reportsList" runat="server"></asp:BulletedList>   

功能:

protected void BuildReportList(DataTable dt)
{
  string groupHeader = "";
  foreach (DataRow row in dt.Rows)
    {                
      if (row["su2_description"].ToString().Trim() != groupHeader)
      {
        groupHeader = row["su2_description"].ToString().Trim();
        ListItem myHeader = new ListItem();
        myHeader.Text = row["su2_description"].ToString();
        myHeader.Attributes.Add("Class", "groupHeader");
        reportsList.Items.Add(myHeader);
      }

    ListItem myItem = new ListItem();
    myItem.Text = row["prg_menu"].ToString();
    myItem.Attributes.Add("title", row["prg_description"].ToString());
    myItem.Attributes.Add("onClick", "runReport(this);");
    myItem.Attributes.Add("value", row["prg_path"].ToString().Trim());
    reportsList.Items.Add(myItem);                
  }
}

您可以从代码中看到列表项正在使用onClick,因此它们是链接,但它们没有链接附带的标准样式。而不是为组头编写CSS来否定BulletedList上的DisplayMode =“HyperLink”引起的所有HTML样式,是否有办法将属性添加到适当的项目以使它们动态地被识别为链接?

1 个答案:

答案 0 :(得分:1)

这是一个很长的镜头,因为我没有尝试过,但我想这会起作用:

不是标题的项目,添加样式属性并将text-decoration设置为下划线以及任何您想要的超链接外观颜色:

myItem.Attributes.Add("style", "text-decoration:underline; color:blue;");