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

本文关键字:列表 组合 添加 ASP 项目 NET 方式 编程 标准 超链接 | 更新日期: 2023-09-27 18:28:01

我正试图从数据表构建一个列表,该函数还需要添加组头。目前,我让它检查一行是否有一个新的组标题,并添加一个带有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样式,还有没有一种方法可以为适当的项目添加一个属性,使它们动态地被识别为链接?

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

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

对于不是标题的项目,添加样式属性,并将两者都设置为text-decoration下划线和超链接外观的任何颜色:

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