【问题标题】:Programmatically adding a mix of standard and hyperlink list items to a bulletlist in ASP.NET以编程方式将标准和超链接列表项的混合添加到 ASP.NET 中的项目符号列表
【发布时间】:2013-08-17 04:16:21
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net css


    【解决方案1】:

    这是一个很长的尝试,因为我还没有尝试过,但我想这会奏效:

    不是标题的项目,添加 style 属性并设置两者,text-decoration 下划线和任何你想要的超链接外观颜色:

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

    【讨论】:

    • 我想到了这种方法,但它缺乏的是它不提供超链接的正常属性;即访问链接和悬停提供的不同颜色,也不提供链接指向的状态栏更新。
    • @Ben 另一种选择是使用 javascript/jquery。您可以找到所有没有 groupHeader 类的元素并将它们包装在锚点中。我不认为你能比这更容易地完成你想要的。
    • 我最终使用了您建议的主题的变体,即使用 CSS 为所有列表项设置标准和 ::hover 颜色,以使它们显示为正常链接。然后我有单独的规则来设置 groupheader 列表元素的颜色,并使用匹配的 ::hover 颜色来关闭链接外观。感谢您的建议!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-07
    • 2011-10-15
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多