我在SQL Server数据库中有一个Group表和一个Images表。将每个图像插入表格后,它们将链接到不同的组。
我正在尝试为群组表格中的每一行显示单独的照片库。
下面的Repeater根据Groups表中的行数创建一个DataList。但是,它会显示所有图像,而不是链接到该特定组的图像。
<asp:Repeater ID="rptGroupGallery" runat="server" EnableViewState="false">
<ItemTemplate>
<asp:DataList DataKeyField="ID" RepeatDirection="Horizontal" RepeatColumns="3" CellPadding="5" runat="server" DataSourceID="dataSource">
<ItemTemplate>
<div style="padding-bottom: 10px;">
<a id="imageLink" href='<%# Eval("filename","~/SlideImages/{0}") %>' title='<%#Eval("imageDesc") %>' rel="lightbox[Brussels]" runat="server">
<asp:Image ID="Image1" ImageUrl='<%# Bind("filename", "~/SlideImages/{0}") %>' runat="server" Width="112" Height="84" />
</a>
</div>
</ItemTemplate>
</asp:DataList>
</ItemTemplate>
</asp:Repeater>
<asp:SqlDataSource ID="dataSource" runat="server" ConnectionString="<%$ ConnectionStrings:BallinoraDBConnectionString1 %>" SelectCommand="SELECT * FROM [SlideShowTable]"></asp:SqlDataSource>
下面的C#代码:
SqlConnection connR;
string connectionStringR = ConfigurationManager.ConnectionStrings[
"BallinoraDBConnectionString1"].ConnectionString;
connR = new SqlConnection(connectionStringR);
SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Groups", connR);
DataTable dt = new DataTable();
sda.Fill(dt);
rptGroupGallery.DataSource = dt;
rptGroupGallery.DataBind();
组SQL:
CREATE TABLE [dbo].[Groups] (
[Group_Id] INT IDENTITY (1, 1) NOT NULL,
[Group_Name] NVARCHAR (50) NULL,
[Group_Desc] NVARCHAR (1000) NULL,
PRIMARY KEY CLUSTERED ([Group_Id] ASC)
);
幻灯片SQL:
CREATE TABLE [dbo].[SlideShowTable] (
[ID] INT IDENTITY (1, 1) NOT NULL,
[filename] VARCHAR (250) NULL,
[imageDesc] VARCHAR (250) NULL,
[groupNo] INT NULL);
以下是我正在使用的表格结构:
下面是我在Group表中有5行时的输出,以及Images表中的3个图像,它们都有不同的Group_ID。
我知道SqlDataSource的Select Command是“SELECT * FROM tableName”。
要分离组,我知道我需要在此命令中添加一个参数(从Group表中传递各种ID)。
但是我不确定如何在转发器中添加它以便计算行数。
有人能告诉我怎么做吗?