OVH Cloud OVH Cloud

pas de passage dans l'évenement pagination d'un UserControl

5 réponses
Avatar
herve
Bonjour,

Je charge bien la première page, mais si je clicque sur une autre valeur
dans la pagination, rien ne s'affiche. En mode debug, j'observe que je
passe pas l'événement "dgLst_Pagination".
J'avai déjà observé cela sur d'autre controls utilisateurs, il soit
s'agir de l'ordre de chargement.
Mais j'ai déjà déplacé chargerContenuLstUrl dans le onInii mais sans
plus de succès
une idée?
hervé

A) - USERCONTROL
<asp:datagrid id="dgLst" PagerStyle-Mode="NumericPages" PageSize="2"
AllowSorting="True" AllowPaging="True"
OnPageIndexChanged="dgLst_Pagination" AutoGenerateColumns="False"
runat="server">
<alternatingitemstyle backcolor="silver" />
<pagerstyle mode="NumericPages"></PagerStyle>
</asp:datagrid>


B) - CODE BEHIND
Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.PreRender
If Not Page.IsPostBack Then
Call _chargerContenuLstUrl()
End If
End Sub

Public Sub dgLst_Pagination(ByVal sender As System.Object, ByVal e As
DataGridPageChangedEventArgs) Handles dgLst.PageIndexChanged
Session("page") = e.NewPageIndex
Call _chargerContenuLstUrl()
End Sub

5 réponses

Avatar
herve
herve a écrit :

Bonjour,

Je charge bien la première page, mais si je clicque sur une autre valeur
dans la pagination, rien ne s'affiche. En mode debug, j'observe que je
passe pas l'événement "dgLst_Pagination".
J'avai déjà observé cela sur d'autre controls utilisateurs, il soit
s'agir de l'ordre de chargement.
Mais j'ai déjà déplacé chargerContenuLstUrl dans le onInii mais sans
plus de succès
une idée?
hervé

A) - USERCONTROL
<asp:datagrid id="dgLst" PagerStyle-Mode="NumericPages" PageSize="2"
AllowSorting="True" AllowPaging="True"
OnPageIndexChanged="dgLst_Pagination" AutoGenerateColumns="False"
runat="server">
<alternatingitemstyle backcolor="silver" />
<pagerstyle mode="NumericPages"></PagerStyle>
</asp:datagrid>


B) - CODE BEHIND
Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.PreRender
If Not Page.IsPostBack Then
Call _chargerContenuLstUrl()
End If
End Sub

Public Sub dgLst_Pagination(ByVal sender As System.Object, ByVal e As
DataGridPageChangedEventArgs) Handles dgLst.PageIndexChanged
Session("page") = e.NewPageIndex
Call _chargerContenuLstUrl()
End Sub


début de piste:
si je mets AutoGenerateColumns à True, je reviens bien au fonctionnement
normal des démos !
par contre, ce n'est pas acceptable en prod bien sur !
mais je n'arrive pas à paraméter quelque chose de correct dans le code
Avatar
YJLAMOTTE
Bonjour,
Tu n'as pas défini de colonnes ? si tu n'utilises pas AutogenerateColumns tu
dois déclarer tes colonnes.

YJLAMOTTE

"herve" wrote:

Bonjour,

Je charge bien la première page, mais si je clicque sur une autre valeur
dans la pagination, rien ne s'affiche. En mode debug, j'observe que je
passe pas l'événement "dgLst_Pagination".
J'avai déjà observé cela sur d'autre controls utilisateurs, il soit
s'agir de l'ordre de chargement.
Mais j'ai déjà déplacé chargerContenuLstUrl dans le onInii mais sans
plus de succès
une idée?
hervé

A) - USERCONTROL
<asp:datagrid id="dgLst" PagerStyle-Mode="NumericPages" PageSize="2"
AllowSorting="True" AllowPaging="True"
OnPageIndexChanged="dgLst_Pagination" AutoGenerateColumns="False"
runat="server">
<alternatingitemstyle backcolor="silver" />
<pagerstyle mode="NumericPages"></PagerStyle>
</asp:datagrid>


B) - CODE BEHIND
Private Sub Page_PreRender(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.PreRender
If Not Page.IsPostBack Then
Call _chargerContenuLstUrl()
End If
End Sub

Public Sub dgLst_Pagination(ByVal sender As System.Object, ByVal e As
DataGridPageChangedEventArgs) Handles dgLst.PageIndexChanged
Session("page") = e.NewPageIndex
Call _chargerContenuLstUrl()
End Sub



Avatar
herve
YJLAMOTTE a écrit :

Bonjour,
Tu n'as pas défini de colonnes ? si tu n'utilises pas AutogenerateColumns tu
dois déclarer tes colonnes.

YJLAMOTTE


Bonjour,
En fait si , mais j'avais oublié de publier le code:

Private Sub _chargerContenuLstUrl()
Dim dgBC_IdInt As New BoundColumn
dgBC_IdInt.DataField = "id_int"
dgBC_IdInt.Visible = False
dgLst.Columns.Add(dgBC_IdInt)

Dim dgBC_Titre As New HyperLinkColumn
dgBC_Titre.DataTextField = "titre"
dgBC_Titre.DataNavigateUrlField = "id_int"
dgBC_Titre.DataNavigateUrlFormatString =
"~/?rub=site&lst=site&det=site&id={0}"
dgLst.Columns.Add(dgBC_Titre)

dgLst.CurrentPageIndex = Session("page")
dgLst.DataSource = AccDonn.xInt_LstTous
dgLst.DataBind()
End Sub

D'ou le problème est ailleurs ...
Avatar
herve
YJLAMOTTE a écrit :

Tu peux peut etre commencer par mettre tes colonnes coté ASPX pour ne plus a
avoir qu'a cracher les données ? en tous cas voici un autre exemple

http://www.4guysfromrolla.com/webtech/082901-1.shtml

YJLAMOTTE



merci je regarde celà.
Par contre il faut qu'à terme je genère dynamiquement mes colonnes en
fonction des requêtes des utilisateurs ...
a+
hervé
Avatar
herve
en fait j'ai retrouvé un bon article deMicrosoft qui explique pourquoi
c'est normal et comment le résoudre avec LoadViewState

Questions fréquentes sur le contrôle DataGrid de serveur Web
L'équipe Visual Studio
Microsoft Corporation
http://www.microsoft.com/france/msdn/technologies/technos/webservices/info/info.asp?mar=/france/msdn/technologies/technos/net/info/faq_controledatagrid.html&xmlpath=/france/msdn/technologies/technos/webservices/ws_inforef.xml&rang=9
Janvier 2002
a+
hervé