「is-active」というクラスがあり、ユーザーがクリックしたリンクに基づいて、ナビゲーションからメインコンテンツに突き出た色付きの矢印があります。コードは aforeach
を実行し、データベースからすべてのカテゴリを取得します。「is-active」クラスを現在のリンクに対してのみ表示するにはどうすればよいですか? コントロールに入れてopenList
5つのカテゴリすべてに表示されるので、機能することはわかっていますが、選択したカテゴリのみに表示する方法がわかりません。
私はそれを行うためにjQueryを添付しようとしましたが、追加linkbutton
はすべてコードビハインドで行われるため、2つを添付する方法がわかりません。これが唯一の方法ですか、それとも別の方法がありますか?
よろしくお願いします。
以下は、カテゴリとリンク ボタンのコードです。
protected override void CreateChildControls()
{
LiteralControl openingDiv = new LiteralControl("<div id='MainPanel'>");
LiteralControl closingDiv = new LiteralControl("</div>");
this.Controls.Add(openingDiv);
foreach (DataRow dr in ds.Tables[0].Rows)
{
LiteralControl openList = new LiteralControl("<li class='" + dr["CategoryColor"].ToString() + "'>");
LiteralControl closeList = new LiteralControl("</li>");
Label lblNumber = new Label();
LinkButton myLinkButton = new LinkButton();
myLinkButton.Text = "<span class='number'>" + dr["CategoryNumber"] + "</span>"+ dr["CategoryName"].ToString();
myLinkButton.CommandArgument = dr["Category_ID"].ToString();
myLinkButton.Click += myLinkButton_Click;
this.Controls.Add(openList);
this.Controls.Add(myLinkButton);
this.Controls.Add(closeList);
}
this.Controls.Add(closingDiv);
}
void myLinkButton_Click(object sender, EventArgs e)
{
LinkButton btn = (LinkButton)(sender);
Session["CategoryID"] = btn.CommandArgument;
Response.Redirect(Request.RawUrl);
}