getule Posté(e) le 28 octobre 2011 Share Posté(e) le 28 octobre 2011 Le datalist est nativement dépourvu d'un pager contrairement au datagridview. c'est d’ailleurs l'une des raison de qui le rend moins utilisable par les développeurs asp.net, alors qu'il offre une facilité de de paramétrage intéressante. un datalist avec un pager sera un composant intéressant d'affichage de donner (idem pour le repeater). voyons comment en ajouter un pager à un datalist ou à un repeater avec le PagedDataSource. je vous donne ici le code en vb fonctionnant correctement chez moi voir l'exemple cliquez ici pour voir l'exemple (source: http://forum.diafdz.com/yaf_postst4_ASP-NET-VB-Comment-ajouter-un-pager-a-un-datalist.aspx Tout d'abord il faut importer System.Data Code: ? [TABLE=width: 0] [TR=bgcolor: initial !important] [TD=class: gutter, bgcolor: initial !important] 1 [/TD] [TD=class: code, bgcolor: #F9F9F9] Imports System.Data [/TD] [/TR] [/TABLE] Puis créons une procédure de mon pager Code: ? [TABLE=width: 0] [TR=bgcolor: initial !important] [TD=class: gutter, bgcolor: initial !important] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [/TD] [TD=class: code, bgcolor: #F9F9F9] Private Sub Monpager() 'Faisons instancier un objet PagedDataSource Dim objPds As New PagedDataSource() 'Déclarons un dataview qui sera remplit par les données de monSqlDataSource (le SqlDataSource utilisé pour se connecté avec votre table) Dim dv As DataView = DirectCast(MonSqlDataSource.[select](DataSourceSelectArguments.Empty), DataView) ' Pointer le dataSource de votre objetPagedDataSource vers le DataView rempli au préalable avec Monsqldatasource objPds.DataSource = dv objPds.AllowPaging = True objPds.PageSize = 5 ' nombre d'enregistrement à afficher sur une page objPds.CurrentPageIndex = CurrentPage 'Ajouter un label qui affichera le nombre de pages et la page courante Label1.Text = "Page: " & (CurrentPage + 1).ToString() & " sur " & objPds.PageCount.ToString() ' Ajouter deux LinkButton (Suivant et Précédent) ' Ces boutons serons désactivés s'il sont à la fin du déroulement du pager Me.LinkButton1.Enabled = Not objPds.IsFirstPage Me.LinkButton2.Enabled = Not objPds.IsLastPage ' Lier votre datalist avec ObjetDataSource déja rempli DataList1.DataSource = objPds 'N'oublie pas de binder votre datalist DataList1.DataBind() End Sub [/TD] [/TR] [/TABLE] Maintenant faites un appel à la procédure pager en chargeant la page Code: ? [TABLE=width: 0] [TR=bgcolor: initial !important] [TD=class: gutter, bgcolor: initial !important] 1 2 3 4 5 [/TD] [TD=class: code, bgcolor: #F9F9F9] Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then ppager() End If End Sub [/TD] [/TR] [/TABLE] Créons la propriété currentPage Code: ? [TABLE=width: 0] [TR=bgcolor: initial !important] [TD=class: gutter, bgcolor: initial !important] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [/TD] [TD=class: code, bgcolor: #F9F9F9] Public Property CurrentPage() As Integer Get ' Cherchons la la ViewState de lapage courante Dim o As Object = Me.ViewState("_CurrentPage") If o Is Nothing Then Return 0 Else ' sinon affiche la première page Return CInt(o) End If End Get Set(ByVal value As Integer) Me.ViewState("_CurrentPage") = value End Set End Property [/TD] [/TR] [/TABLE] enfin créons les procédures évènementielles des LinkButton (suivant et précédent) Code: ? [TABLE=width: 0] [TR=bgcolor: initial !important] [TD=class: gutter, bgcolor: initial !important] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [/TD] [TD=class: code, bgcolor: #F9F9F9] Protected Sub LinkButton1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton2.Click CurrentPage -= 1 Monpager() End Sub Protected Sub LinkButton2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButton3.Click CurrentPage += 1 Monpager() End Sub [/TD] [/TR] [/TABLE] Et vous voilà avec un datalist fonctionnant avec une pagination cordialement Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alirobben Posté(e) le 29 octobre 2011 Share Posté(e) le 29 octobre 2011 Merci. en PHP c'est 10 fois plus facile, je voudrais connaitre les avantages d'ASP.net sur PHP ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
getule Posté(e) le 31 octobre 2011 Auteur Share Posté(e) le 31 octobre 2011 (modifié) Pourquoi je prèfère l'asp.net? Des controles puissants : en effet en asp.net on peu trouver des controles trés puissants, bien plus puissant que les controles html standards. En fait en asp.net il y a les webforms qui sont des controles qui gènèrent du html et du javascript vers le navigateur client. Un exemple parmis d'autres, le datagrid te permet d'afficher des données tabulaire et de les éditer bien plus rapidement qu'en php, juste un objet à lier à une source de données. Des pages compilées : l'une des grosses différences entre asp.net et php est que le php est un script interprété, l'asp une application compilée. La compilation permet d'optimiser le code qui s'exécute et facilite aussi le débuggage. Lisibilitée et maintenance du code : en php on a les script qui s'exécutent coté client, ceux qui s'exécutent coté serveur et le code html qui sont mélangé dans un seul fichier et avec plusieurs scripts "entrelacés", en asp.net, le modèle webform limite l'utilisation du javascript dans les pages asp.net (le controle génère le javascript et le html nécessaire au rendu souhaité) et les partie de code qui s'éxécutent coté client et coté serveur sont clairement séparés, on peut même ne pas les mettre dans le même fichier. Un code 100% objet : même si le php permet de coder de mannière objet, les traitement asp.net coté serveur se font en VB.NET, C# ou J#, mais ces 3 langages sont trés orientés objet. On peu faire de l'objet en php, mais le langage s'y prette moins, parait que ça s'est amélioré dans php5 Les applets : pour un intranet plus "riche" tu peux faire des applets .NET, mais attention chaque client qui utilise une applet devra alors avoir le framework .NET installé. L'avantage est que tu peux avoir access à des controle beaucoup plus riches trés proches de la MFC, des controles bien plus riches que dans une applet java. et puis c'est une question de choix primaire et d'habitude. je n'ai pas pour autant oublié que php est opensource et gratuit (:-))! alors que les ide professionnels comme visual studio professionnel n'est pas du tout gratuit, to^^^^ois des ide pour asp gratuit ça existe. Modifié le 31 octobre 2011 par getule 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
alirobben Posté(e) le 1 novembre 2011 Share Posté(e) le 1 novembre 2011 Merci pour ta réponse Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.