Question

Récemment, j'ai remarqué une restriction subtile dans le mécanisme d'échange de GridView. pagination efficace, le chargement juste demandé la page des données, est seulement possible avec l'aide des commandes DataSource comme ObjectDataSource que déclarative liaison de données et il est impossible lorsque vous n'utilisez une source de données et juste de codebehind (MSDN décrit ici ).

Cela signifie-t ASP.NET est basée sur la programmation déclarative pas de code derrière? Et il est préférable de faire de la programmation déclarative par défaut?

Était-ce utile?

La solution

Hors de la boîte WebForms essaie de vous orienter sur le chemin déclarative. Vous pouvez contourner cela et le code fait écrire, mais WebForms rend extrêmement difficile.

Si vous voulez vraiment avoir le contrôle, alors vous devriez regarder dans le framework ASP.NET MVC.

Autres conseils

ASP.Net utilise à la fois: le balisage est déclarative, code-behind est impératif.

Vous devriez favoriser un style qui conduit à un code plus déclarative - bâtiment contrôles utilisateur, par exemple. Mais ces contrôles auront encore besoin du code impératif qui leur indique comment se comporter.

J'ai fini par faire ma propre recherche de personnes en utilisant la fonction SQL ROWNUMBER.

select * from
( select row_number() over (order by pk asc) as rownumber, * from ...)
where row_number between @a and @b

J'ai fini par ne pas aller déclarative du tout - au lieu d'alimenter une source de données les paramètres (que l'on pourrait réalistement faire) Je viens réussi tout dans le code-behind, définissez la source de données manuellement, construit le récepteur d'appel à la main

La raison pour laquelle je l'ai fait de cette façon? Un bug dans 3,5 gestion des paramètres de la querystringfield .

J'aurais probablement manipulé la source de données d'objet avec row_number, mais vous ne Vous pour faire quoi que ce soit déclarative si vous ne se soucient pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top