IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Bug sur autopostback d'un dropdownlist dans un repeater


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Par défaut [VB.Net 1.1] Bug sur autopostback d'un dropdownlist dans un repeater
    Bonjour,

    j'ai une liste de catégories de produits, chaque catégorie contenant plusieurs produits classés dans ma base de données sql
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <div id="Milieu">
    <ul>
    <asp:Repeater id="CatList" runat="server" OnItemDataBound="R1_ItemDataBound">
    <ItemTemplate>
    <li>
    <asp:Label ID="CatId" text='<%# DataBinder.Eval(Container.DataItem, "CatId") %>' Visible=False Runat=server>
    </asp:Label>
    <asp:Label ID="NomProd" Visible=False Runat=server>
    </asp:Label>
    <asp:HyperLink id="HyperLink1" Text='<%# DataBinder.Eval(Container.DataItem, "NomCat") %>' NavigateUrl='<%# "Categories.aspx?CatID=" & DataBinder.Eval(Container.DataItem, "CatID") & "&selectmenu=" & Container.ItemIndex %>' runat="server" />
    <aspropDownList ID="ProdList" AutoPostBack=True OnSelectedIndexChanged="Selection_change" Runat="server">
    </aspropDownList>
    </li>
    </ItemTemplate>
    </asp:Repeater></ul>
    </div>
    le code pour afficher :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    If Not Page.IsPostBack Then
    Dim Produits As Altearah.HuilesRares.ProduitDB = New Altearah.HuilesRares.ProduitDB
    Dim Adapter As SqlDataAdapter
    Adapter = Produits.CatListBylg(CInt(Session("lg")))
    Dim CatTable As DataTable
    CatTable = New DataTable
    Adapter.Fill(CatTable)
     
     
    CatList.DataSource = CatTable.DefaultView
    CatList.DataBind()
    End If
     
     
    End Sub
     
     
    Public Sub R1_ItemDataBound(ByVal Sender As Object, ByVal e As RepeaterItemEventArgs) Handles CatList.ItemDataBound
     
    If (e.Item.ItemType = ListItemType.Item) Or _
    (e.Item.ItemType = ListItemType.AlternatingItem) Then
     
    'Liste des produits
     
    Dim Cat As Integer
    Cat = CInt(CType(e.Item.FindControl("CatId"), Label).Text)
    Dim Produits As Altearah.HuilesRares.ProduitDB = New Altearah.HuilesRares.ProduitDB
     
    CType(e.Item.FindControl("ProdList"), DropDownList).DataSource = Produits.ListDistProdByCat(Cat, "NomProd")
     
    CType(e.Item.FindControl("ProdList"), DropDownList).DataTextField = "NomProd"
    CType(e.Item.FindControl("ProdList"), DropDownList).DataValueField = "CodeProd"
    CType(e.Item.FindControl("ProdList"), DropDownList).Items.Insert(0, New ListItem("", "<--Liste des Produits-->"))
    CType(e.Item.FindControl("ProdList"), DropDownList).DataBind()
     
    End If
     
    End Sub
     
    Public Sub Selection_Change(ByVal sender As Object, ByVal e As EventArgs)
    Dim nom As DropDownList
    nom = CType(sender, DropDownList)
    Dim val As String
    val = nom.SelectedValue
     
    End Sub
    Ma page s'affiche correctement mais lorsque je sélectionne un produit dans ma dropdownlist j'ai un bug javascript et mon autopostback ne se fait pas.

    Je ne comprends pas d'où vient l'erreur

    autre problème plus mineur, je n'arrive pas à afficher dans mes dropdownlist une première ligne neutre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(e.Item.FindControl("ProdList"), DropDownList).Items.Insert(0, New ListItem("", "<--Liste des Produits-->"))
    Merci de votre aide

  2. #2
    Membre habitué
    Inscrit en
    Janvier 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 11
    Par défaut Problème résolu
    Bonjour,

    Je suis la reine des pommes, en fait mon code est juste sauf que j'avais collé un début de javascript en haut de page qui bloquait l'ensemble de l'exécution de ma page. Une fois supprimé ces 2 lignes qui ne servais à rien tous marche à merveille.
    J'espère que mon code servira à d'autre.

    Juste une petite correction sur l'ajout de la ligne vide dans les dropdownlist :
    CType(e.Item.FindControl("ProdList"), DropDownList).DataSource = Produits.ListDistProdByCat(Cat, "NomProd")

    CType(e.Item.FindControl("ProdList"), DropDownList).DataTextField = "NomProd"
    CType(e.Item.FindControl("ProdList"), DropDownList).DataValueField = "CodeNomProd"
    CType(e.Item.FindControl("ProdList"), DropDownList).DataBind()
    CType(e.Item.FindControl("ProdList"), DropDownList).Items.Insert(0, New ListItem("<--Liste des Produits-->", ""))

    le items.insert esdt à mettre après le databind pour que cela fonctionne et non pas avant.
    Merci et désolé pour le dérangement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Bug sur la recherche de "test" dans l'en-tête
    Par Immobilis dans le forum Evolutions du club
    Réponses: 2
    Dernier message: 06/10/2011, 22h52
  2. Bug sur utilisation d'un multipage dans un userform
    Par popsmelove dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/05/2008, 19h04
  3. Réponses: 1
    Dernier message: 14/05/2006, 11h50
  4. [C#] DropDownList dans un Repeater
    Par boleduch dans le forum ASP.NET
    Réponses: 3
    Dernier message: 27/02/2006, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo