データテーブルからリストを作成しようとしていますが、関数はグループ ヘッダーも追加する必要があります。現在、行に新しいグループ ヘッダーがあるかどうかを確認し、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 スタイルを無効にするのではなく、適切な項目に属性を追加して動的にリンクとして認識させる方法はありますか?