Linq Data Source , Object Data Source si GridView

 

In sfirsit am avut ocazia sa ma joc cu LINQ de adevaratelea(cam tirziu, avind in vedere ca a aparut Visual Studio 2008 SP1 si The .NET Framework 3.5 SP1
cu DataEntity si Astoria). Si prima chestie mare pe care a trebuit sa o fac a fost un gridview cu paginare, sortare si filtrare.

Imi generasem clasele Linq intr-un dll – si am zis ca pun un LinqDataSource. Cind citesc documentatia , gasesc TableName – si mi-am zis: “UPS… nu vreau sa ma conectez la tabela, ci la datele mele”

Asa incit imi zic – ObjectDataSource e ceea ce vreau.

Il configurez – punindu-i metodele pe care le vroia – cea cu selectcount si cea cu paginare – si mergea OK. In SQL Server Profiler aparea Ok… Si acum filtrarea pe server . Aici au inceput problemele: Nu mai voia sa afiseze paginile (1, 2 ,etc), desi selectcount-ul il facea pe server…

Ca solutie intermediara am zis sa aduca toate datele daca face filtrare… Dar nu mi-a placut prea mult…si in plus nu mai genera evenimente de rowcommand…

Asa ca intreb si eu ca incepatorul pe Ronua si am noroc :sirocco imi raspunde ca TableName e de fapt numele clasei … Chiar asa este!Merge paginarea si sortarea rapid si fara probleme…

Iar la filtrare e suficient sa puneti un parametru la WhereParameters si sa puneti clauza Where cum trebuie .

Ma rog, am mai dat de o problema : Am filtrat dupa stringuri – merge NumeProprietate.Contains(@numeparametru).

Problema este ca ,daca nume parametru este gol, va da eroarea

No applicable method ‘Contains’ exists in type ‘String’

Nu va speriati – eroare spune o prostie … puneti la parametru ConvertEmptyStringToNull=”false”

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *