webForumDet fria alternativet

Binda till en gridview med en gridview

.NETur .NET

2 svar · 489 visningar · startad av Addeladde

Medlem sedan jan. 20013 406 inlägg
Frågan#1

Hej

Jag har en collection av en klass som i sig innehåller en collection av ytterliggare en klass.

Exempel:
1 klassen Bil som jag har en collection av.
namn
hjulen (hjulen är en collection av Hjul)

Nu vill jag kunna binda detta till t.ex. en repeater och få följande utskrifts:

Fyrhjuling
Hjul:
    Vänster fram
    Höger fram
    Vänster bak
    Höger bak
Trehjuling
Hjul:
    Mitten fram
    Vänster bak
    Höger bak

Går detta? I mitt verkliga exempel så innehåller även klassen Hjul en collection som ska skrivas ut.

Enda sättet jag kan komma på är att i codebehind bygga upp tabellen med detta.

Medlem sedan jan. 20022 440 inlägg
#2

Det är inga problem ;)

 [b]// Asp.net Sidan[/b]
<asp:Repeater Runat="server" ID="_itemsRepeater" EnableViewState="false">
	<ItemTemplate>
		<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>' />  
		
		<asp:Repeater Runat="server" ID="_subitemsRepeater" EnableViewState="false" DataSource='<%# DataBinder.Eval(Container.DataItem, "SubItems") %>'> 
			<ItemTemplate>
				<br/>&nbsp;&nbsp;&nbsp; 
				<asp:Label Runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Name") %>' />
			</ItemTemplate>
		</asp:Repeater>
		<br/>
	</ItemTemplate> 
</asp:Repeater>

protected void Page_Load(object sender, EventArgs e) 
{ 
	_itemsRepeater.DataSource = ItemsBLL.GetData(); 
	_itemsRepeater.DataBind(); 
}

[b]// Dina andra klasser[/b]
public class ItemsBLL   
{  
	public static IList<Item> GetData()   
	{ 
		IList<Item> itemList = new List<Item>(); 
		for (int i = 0; i < 10; i++)
		{ 
			Item _item = new Item("item" + i.ToString()); 
			for (int j = 0; j < 5; j++) 
			{ 
				Item subItem = new Item("subitem" + j.ToString());
				_item.SubItems.Add(subItem);
			} 
			itemList.Add(_item);
		} 
		return itemList; 
	}
}

public class Item
{ 
	string _name;
	IList<Item> _subItems = new List<Item>(); 
	public Item(string name) { _name = name; }
	public string Name { get { return _name; } } 
	public IList<Item> SubItems { get { return _subItems; } }
}
Medlem sedan jan. 20013 406 inlägg
#3

Tack

130 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)