Listview control er ikke så nemt at forstå, som det påstås !

Tags:    listview asp.net c#

Man læser så meget GODT om Listview control på nettet, men JEG synes den er lidt forvirrende at forstå.

Jeg har f.eks læst, at Listview control har bulit-in functionality for sort, delete, edit

1 - Men GÆLDER denne bulit-in functionality også hvis jeg bruger en List<> til fodere Listview control data med (og ikke en Datasource control )
,altså følgende :



List<love> Me = Get.Love("england");

Listview1.Datasource = Me;
Listview1.Databind();


Det at listview har bulit-in functionality for sort, delete , betyder det vi ikke skal defineret event handler:

onsorting="VendorListView_Sorting"

og vi skal heller ikke skrive denne funktion:



2 - Kan det passe, at Listviews bulit-in functionality KUN virker, hvis den modtager data fra en datasource control( Nede i den har vi defeneret sql for update, slet edit ?)

3 - Hvad er forskellen mellem ListviewDataitem og DataRowview









8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 6 karma
Sorter efter stemmer Sorter efter dato
1. Ja og nej.

Metoderne virker, men de er 99% som en List - uden at være sikker tror jeg at både en List og en ItemCollection arver ICollection interfacet. Du bruger i dit eksempel din List som ItemsSource, og med mindre den er readonly, så er der ingen problemer.

Fold kodeboks ind/udCSharp kode 


Du sletter den markerede ting ved at:

Fold kodeboks ind/udCSharp kode 


og adder ved at

Fold kodeboks ind/udCSharp kode 


Du kan også lave en ObservableCollection<T> i stedet for en List<T>, så kan du udføre alle operationerne direkte på din collection i stedet, og så bliver din ListView automatisk opdateret.

Fold kodeboks ind/udCSharp kode 



3. ListViewDataItem er et object repræsenteret i en ListView control. DataRowView er en række fra en DataGrid.

2. Nej.



I en ListView skal du selv implementere interfacet iComparer til sortering. Fordelen ved en ListView er netop, at den er meget nemmere at ændre så den passer 100% ind i din egen side. Men at påstå, at den er nem er vist noget forkert, hvem der så end har sagt det :-)

Hvis du vil gøre det nemmere for dig selv, så laver du et GridView i stedet for.



Indlæg senest redigeret d. 19.11.2011 22:34 af Bruger #9814
Jeg må indrømme, at jeg stadig har lidt svært ved forstå Listview controllen.

Men hvis jeg nu forstår dig korrekt, så skal en listview control forstås son en kasse, som så indholder indexet items af typen Listviwdataitem ?

DataRowview er så data, eller måske OBJEKT fra min list<t> ??

Listviwdataitem og DataRowview udtrykker jo det samme ??


Men jeg har fået min listview til virke og har nu tilføjet en knap sådan :

<asp:button ID="btsort" runat="server" Text="Sort" CommandName="SORT" />.


Men når listview vises på siden og jeg trykker på den knap, Giver den FEJL..(Det burde sortere jo.. som er built in)

Her er fejlen


Fold kodeboks ind/udKode 




Ved du hvad, jeg har svaret udfra at det var en ListBox og ikke en ListView, så noget at det jeg har skrevet, holder ikke rigtig.

Tilgengæld kan jeg svare dig på, at du skal angive en metode for sortering - du kan ikke bare sige at den skal gøre det...



Nicky det er bare iorden :)

Hvorfor skal man skrive metode, når de siger det er (built in fuctionalty):O:D



Fordi at uden IComparable<T> ved systemet ikke hvordan klasse "Love" skal sorteres.



Hmmm hvordan forstår i andre denne artikel ?

http://www.codedigest.com/Articles/ASPNET/105_EditUpdateDelete_and_Insert_in_ListView_Control.aspx

Jeg forstå som at jeg ikke skal skrive sortering og andre update, edit metoder, hvis jeg bruger en data source control



Hvor ser du det med sort i artiklen? Dog kan du på samme side se dette eksemp omkring sortering (med en DataSourceControl)

http://www.codedigest.com/Articles/ASPNET/411_Sorting_in_ListView_control_in_AspNet_-_Using_DataSource_controls.aspx





t