Das Problem ist, wenn ich dt1 als rpt2.DataSource (verschachtelte Repeater-Quelle) das Programm läuft gut, aber wie ich dt2 als Quelle verwenden (und Eval() ändert sich entsprechend) die Ausgaben sind von nur Erster Repeater.Verschachtelte Repeater mit DataTable Asp.net
Ausgang für dt2 =>
1 Rams
2 Prozessoren
3 Grafikkarten
Ausgabe, wenn i
1 Rams
Änderungen für DT1 => machen 1
2 Processors
3 Grafikkarten
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="my_repeater1" runat="server" OnItemDataBound="my_repeater1_ItemDataBound">
<ItemTemplate>
<asp:Label Text='<%#Eval("ID")%>' ID="my_text1" runat="server" />
<asp:Label Text='<%#Eval("CATEGORY")%>' ID="my_text2" runat="server" />
<br />
<asp:Repeater runat="server" ID="my_repeater2">
<ItemTemplate>
<asp:Label Text='<%#Eval("ITEMS")%>' ID="lbl1" runat="server" />
<br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
public partial class WebForm1 : System.Web.UI.Page
{
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{
dt1.Columns.Add("ID");
dt1.Columns.Add("CATEGORY");
dt1.Rows.Add("1", "Rams");
dt1.Rows.Add("2", "Processors");
dt1.Rows.Add("3", "GraphicCards");
my_repeater1.DataSource = dt1;
my_repeater1.DataBind();
dt2.Columns.Add("ID");
dt2.Columns.Add("ITEMS");
dt2.Rows.Add("1", "DDR1");
dt2.Rows.Add("2", "DDR2");
dt2.Rows.Add("3", "DDR3");
}
protected void my_repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater rpt2 = (Repeater)e.Item.FindControl("my_repeater2");
rpt2.DataSource = dt2;
rpt2.DataBind();
}
}
so kam ich zu wissen, wenn ich my_repeater1 nach dem Zuweisen von Zeilen und Spalten zu allen DataTables, dann das Programm läuft gut, so dass das Problem der Reihenfolge war, aber ich verstehe nicht, warum Reihenfolge hier zählt? –