画像のようにフォトギャラリーを表示する必要があります。フォト ギャラリーの情報を 4 つの異なるテーブルに格納します。メイン ページの CategoryName と Albums に、それらのアイコンと共に表示し、それらを AlbumCategoryPage.aspx にリンクする必要があります。
これを達成するために、ネストされたリピーター コントロールを使用しています。
親リピーターはカテゴリ画像を表示し(赤色で表示)、同じカテゴリのトップ 4 アルバムなどを表示します。
これまで私はこのようにしてきました
<asp:Repeater ID="rptAlbumCategory" runat="server" OnItemDataBound="rptAlbumCategory_ItemBound">
<ItemTemplate>
<!-- Repeated data -->
<div class="AlbumRowWrapper">
<div id="dAlbumCategory" class="AlbumCategoryIcon">
<asp:Image ID="Image1" ImageUrl='<%# getImagePath(Eval("CategoryImage")) %>' runat="server" />
</div>
</div>
<asp:Repeater ID="rptAlbums" runat="server" >
<ItemTemplate>
<!-- Nested repeated data -->
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
コードビハインド
ページ読み込み時
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{ //Get Gallery
DataSet dsAlbumCat = new DataSet();
string strSql = "SELECT * FROM AlbumCategory)";
dsAlbumCat = DataProvider.Connect_Select(strSql);
rptAlbumCategory.DataSource = dsAlbumCat;
rptAlbumCategory.DataBind();
}
}
protected void rptAlbumCategory_ItemBound(Object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
Repeater childRepeater = (Repeater)e.Item.FindControl("rptAlbumCategory");
// childRepeater.DataSource = getAlbums();
// childRepeater.DataBind();
}
}
protected void getAlbums()
{
DataSet dsAlbums = new DataSet();
string strSql = "SELECT * FROM AlbumName WHERE CategoryID = " + CategoryID + ")";
dsAlbums = DataProvider.Connect_Select(strSql);
rptAlbums.DataSource = dsAlbums;
rptAlbums.DataBind();
}
protected String getImagePath(object img)
{
string url;
url = "~/Images/gallery/" + img;
return url;
}
このコードを使用すると、次の結果を得ることができます。
関連するアルバムが表示されるように、親リピーターから子リピーターに CategoryID を渡す方法がわかりません。
ネストされたリピーターを初めて使用していますが、シナリオに関連する完全な例が見つからないため、混乱を招きます
テーブル構造
TABLE AlbumCategory
CategoryID
CategoryName
CategoryImageIcon
CategoryVisible
LanguageID
TABLE AlbumName
AlbumID
AlbumName
AlbumDescription
AlbumImageIcon
CategoryID
LanguageID
この点で、最初の画像に表示されているものと同じデザインを達成するための最良のアプローチでも助けていただければ幸いです