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