2009-08-15 8 views
1

Je veux créer mon propre contrôle de pagination et je voudrais l'utiliser pour lister les utilisateurs dans une grille.Obtenez le top 10 des utilisateurs dont le nom d'utilisateur commence par 'A' (ASP.NET)

D'une manière ou d'une autre, j'ai besoin d'obtenir seulement le top 10 pour les utilisateurs d'exemple pour la première page, puis 10-20 utilisateurs et ainsi de suite.

Je ne trouve aucune méthode intégrée dans l'espace de noms des membres. Finduserbyname est utile si je veux trouver tous les utilisateurs dont le nom d'utilisateur commence par exemple avec A ou autre.

Maintenant, j'ai besoin d'un moyen efficace de tirer ces données sur une base page par page.

Merci

Répondre

0

J'ai trouvé un article qui montre comment utiliser les Membership.GetAllUsers(); la fonction et l'utiliser ensuite comme source de données

Donc, vous avez une grille de gridview ou les données et définir la source comme ceci:

Users.DataSource = Membership.GetAllUsers(); 
Users.DataBind(); 

et vous pouvez créer votre pagination à partir de là (ou en utilisant construit en échange de gridview)

+0

Ou vous pouvez utiliser l'objet PagedDataSource. Très utile. –

+0

Il existe une méthode de surcharge qui définit plus de paramètres pour la pagination http://msdn.microsoft.com/en-us/library/system.web.security.membership.findusersbyname.aspx. La faiblesse de l'utilisation de GetAllUsers() est que la pagination est effectuée au niveau de l'application, et non au niveau de la base de données. Lorsque vous interrogez Toutes les données de la base de données, nous n'en utilisons qu'un sous-ensemble au niveau de l'application. Il vaudra mieux que nous invoquions le bon paramètre, afin que l'API puisse effectuer la pagination jusqu'au niveau de la base de données, afin de conserver la ressource –

2

Quand je googlé la définition de la méthode Membership.FindUsersByName, il a plus de paramètres qui peuvent être utilisés pour définir Paging

Voici les détails: http://msdn.microsoft.com/en-us/library/fa5st8b2.aspx

Comme vous pouvez le voir à partir de la définition du paramètre, vous pouvez fournir l'index (int) pageIndex, ainsi que le (int) pageSize.

Disons que vous avez un total de 100 enregistrements qui qualifient les utilisateurs avec prénom = 'John', alors si vous souhaitez récupérer la 1ère page (avec un total de 10 utilisateurs dans chaque page), vous pouvez définir le (int) pageIndex à 1, puis le (int) pageSize à 10.

Par la suite si vous souhaitez récupérer la 2ème page, vous pouvez définir le (int) pageIndex à 2 et (int) pageSize à 10.

Vous pouvez utiliser le paramètre totalRecords (out) pour obtenir le nombre total d'enregistrements, ce qui vous permet de l'afficher dans votre grille d'interface utilisateur.

Questions connexes