Avatar billede milandt Nybegynder
02. januar 2008 - 23:28 Der er 1 kommentar

LINQ og sorting i GridView

Hejsa,

Jeg har en frontend med et GridView og en ObjectDataSource.

<asp:GridView ID="gvDokumenter" runat="server" DataSourceID="odsDokumenter" ... />

<asp:ObjectDataSource ID="odsDokumenter" runat="server" TypeName="Dokumenter" SelectMethod="HentDokumenter" DeleteMethod="SletDokument" />

Metoden HentDokumenter plejede at kalde en Stored Procedure og returnere en DataTable. Det binder fint til mit Gridview, f.eks kunne mit GridView på denne måde sortere korrekt.

Jeg har nu kigget nærmere på LINQ, og vil gerne erstatte mit kald til min Stored Procedure med LINQ, og det har jeg gjort således:

    public static IList HentDokumenter()
    {
        using (Database db = new Database())
        {
            var doks = from dok in db.Dokument
                select new
                {
                    DokumentID = dok.CVDokumentId,
                    Titel = dok.Titel,
                    ContentType = dok.ContentType,
                    Extension = dok.TypeExtension,
                    UploadDato = dok.CreateDate               
                };
            return doks.ToList();
        }
    }

Den udvælger fint dokumenterne fra databasen, men de er ikke længere sorterbare.

Jeg er opmærksom på at en LinqDataSource umiddelbart kunne løse problemet, og faktisk helt overflødiggøre Dokument klassen. Jeg bryder mig bare ikke om at skrotte hele mit DataAccessLayer, og erstatte det med LinqDataSourcer i mine ASPX filer.

Kan det være rigtigt at jeg skal implementere min egen collection klasse med custom sorting bare fordi jeg ikke har lyst at bruge en LinqDataSource?

Her er et eksempel på hvordan man kan beholde sorting og paging i sit gridview med en ObjectDataSource og LINQ:
http://brianorrell.blogspot.com/2008/01/objectdatasource-linq-paging-sorting.html

Det synes jeg dog er et kæmpe arbejde for hver forretningsklasse i mit projekt..



Er der nogen der kan forklare mig hvordan man bedst griber disse almindelige data access opgaver an, som handler om at binde data, opdatere og slette data fra f.eks et GridView som før var forholdsvis simpelt med en ObjectDataSource, en select, insert, update og delete metode.
Avatar billede milandt Nybegynder
14. januar 2008 - 10:55 #1
Ingen?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester