C# 雷彼得的项目清单
我在数据库中有两个表,它们是连接的C# 雷彼得的项目清单,c#,asp.net,asprepeater,bulletedlist,C#,Asp.net,Asprepeater,Bulletedlist,我在数据库中有两个表,它们是连接的 tblPackage id Name 1 Package A 2 Package B tblDetails id PackageID Details 1 1 PackageDetails11 2 1 PackageDetails12 3 1 PackageDetails13 4 1 PackageDetails14 5 2 PackageDetails21 6 2
tblPackage
id Name
1 Package A
2 Package B
tblDetails
id PackageID Details
1 1 PackageDetails11
2 1 PackageDetails12
3 1 PackageDetails13
4 1 PackageDetails14
5 2 PackageDetails21
6 2 PackageDetails22
7 2 PackageDetails23
现在我想让它在中继器上操作
HTML
试试这个
aspx
在中继器内部使用
sqldatasource
<asp:Repeater ID="rptrPackage" runat="server" >
<ItemTemplate>
<asp:HiddenField ID="PackID" runat="server" Value='<%# Eval("id") %>'
/>
<asp:Label id="Pack" runat="server" Text='<%# Eval("Name") %>'></asp:Label><br/>
<asp:BulletedList ID="Details" runat="server"
DataSourceID="SqlDataSource1" DataTextField="Details"
DataValueField="id">
</asp:BulletedList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:YourConnectionString %>"
SelectCommand="SELECT * FROM [tblDetail] WHERE [PackageID] = @PID" >
<SelectParameters>
<asp:ControlParameter Name="PID" Type="Int32" ControlID="PackID" PropertyName="Value" />
</SelectParameters>
</asp:SqlDataSource>
</ItemTemplate>
</asp:Repeater>
答案呢,你不知道该怎么回答吗?答案对你来说是否不正确?
private void Populate()
{
DataTable dtPackage = tblPackage();
DataTable dtDetails = tblDetails();
rptrPackage.DataSource = dtPackage;
rptrPackage.DataBind();
}
<asp:Repeater ID="rptrPackage" runat="server">
<ItemTemplate>
<asp:Label ID="Pack" runat="server" Text='<%# Bind("Pack") %>'></asp:Label>
<asp:HiddenField ID="hID" Value='<%# Eval("PackageID") %>' runat="server" />
<asp:Repeater runat="server" ID="rptDetails">
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li>
<%# Eval("Details")%>
</li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
private void Populate()
{
DataTable dtPackage = tblPackage();
DataTable dtDetails = tblDetails();
rptrPackage.DataSource = dtPackage;
rptrPackage.DataBind();
foreach (RepeaterItem item in rptrPackage.Items)
{
Repeater rptDetails = ((Repeater)item.FindControl("rptDetails"));
rptDetails.DataSource = dtDetails.Select("PackageID = " + ((HiddenField)item.FindControl("hID")).Value).CopyToDataTable();
rptDetails.DataBind();
}
}
<asp:Repeater ID="rptrPackage" runat="server" >
<ItemTemplate>
<asp:HiddenField ID="PackID" runat="server" Value='<%# Eval("id") %>'
/>
<asp:Label id="Pack" runat="server" Text='<%# Eval("Name") %>'></asp:Label><br/>
<asp:BulletedList ID="Details" runat="server"
DataSourceID="SqlDataSource1" DataTextField="Details"
DataValueField="id">
</asp:BulletedList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:YourConnectionString %>"
SelectCommand="SELECT * FROM [tblDetail] WHERE [PackageID] = @PID" >
<SelectParameters>
<asp:ControlParameter Name="PID" Type="Int32" ControlID="PackID" PropertyName="Value" />
</SelectParameters>
</asp:SqlDataSource>
</ItemTemplate>
</asp:Repeater>