Problema listview annidato

mercoledì 17 agosto 2011 - 15.26
Tag Elenco Tags  VB.NET  |  .NET 2.0  |  .NET 3.5  |  Visual Studio 2008

fabiod Profilo | Newbie

Ciao a tutti,
ho una listview con degli articoli io vorrei che ogni n record (es. al 3° al 6° al 9* ecc) venga visualizzato un listview annidato con altri dati.
In quale evento posso gestire il count degli items del listview principale?

Ho provato nell'ItemCreated facendo una cosa del genere: Dim currentItem1 As ListViewDataItem = e.Item mi aspettavo di volta in volta il numero di item invece niente (in realtà non capisco neanche bene cosa tira fuori... )


Grazie
Fabio

Gluck74 Profilo | Guru

agisci sull'evento "ItemDataBound"

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e) { ListViewDataItem item = (ListViewDataItem)e.Item; int indiceItem = item.DataItemIndex; }


____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

fabiod Profilo | Newbie

Ciao ho provato ma indiceItem riporta sempre 0 (zero) ho inserito il tuo codice (portandolo da C# a VB) sbaglio qualcosa? Il listview annidato l'ho inserito nell'ItemSeparatorTemplate forse dovrei inserirlo in altro modo?

Gluck74 Profilo | Guru

mi pare strano.
metti un breakpoint sulla riga

ListViewDataItem item = (ListViewDataItem)e.Item;

e controlla che tipo di oggetto hai in e.Item.



____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

andrestu Profilo | Expert

ricordati di controllare se è un dataitem, l'errore potrebbe essere dovuto proprio al fatto che non tutti gli item creati sono ListViewItemType.DataItem

if (e.Item.ItemType == ListViewItemType.DataItem)
{...


lo potresti creare dinamicamente nel OnItemCreated (se non hai bisogno di fare qualche verifica sui dati contenuti) anzi lo inserirei direttamente nell'item template della pagina e lo abiliterei o disabiliterei in base all'indice...

ListViewDataItem li = (ListViewDataItem)e.Item;
li.DataItemIndex

oppure l'index relativo alla visualizzazione

li.DisplayIndex




Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5