メニュー項目の次の構造があります。
class MenuItem
{
public string Path, Title;
}
のオブジェクトを反復処理し、反復ごとにMenuItem[]
の新しいオブジェクトを作成して、それをリストに追加できるようにしたいと思います。asp:HyperLink
<ul>
発生しなければならないことの1つは、各ハイパーリンクが<li>
タグ内にあることです。
どうやってやるの?
メニュー項目の次の構造があります。
class MenuItem
{
public string Path, Title;
}
のオブジェクトを反復処理し、反復ごとにMenuItem[]
の新しいオブジェクトを作成して、それをリストに追加できるようにしたいと思います。asp:HyperLink
<ul>
発生しなければならないことの1つは、各ハイパーリンクが<li>
タグ内にあることです。
どうやってやるの?
リピーター様ご利用頂けます。aspx で:
<asp:Repeater ID="repMenuItems" runat="server">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><asp:HyperLink ID="lnkMenuItem" runat="server" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("Path")%>'/></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
コードビハインドでは:
repMenuItems.DataSource = arrMenuItem; // your MenuItem array
repMenuItems.DataBind();
さらに、次のように、パブリック メンバーの代わりにパブリック プロパティを使用するようにクラス コードを変更する必要があります。
public class MenuItem
{
public string Title {get;set;}
public string Path {get;set;}
}
オブジェクトのカプセル化の優れた機能である .NET のプロパティについて詳しく読むことをお勧めしますhttp://msdn.microsoft.com/en-us/library/65zdfbdt(v=vs.71).aspx
これがお役に立てば幸いです