Control repeater VB.NET

DSI31 Messages postés 3 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 27 mai 2011 - 25 mai 2011 à 03:00
DSI31 Messages postés 3 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 27 mai 2011 - 27 mai 2011 à 04:14
Bonjour à tous , je suis en train de developper une petite application web avec Visual Studio 2008 en VB ou j'ai un probléme. j'ai utilisé un control reperter qui va recupérer des donnée à partir d'une base de données SQl Server à travert une requete et les afficher lors de la chargement de la page. ce repeater contient trois label qui vont afficher les valeur recuperées à partir de la BD ,et un control Checkbox devant chaque ligne. je veut que lorsque je coche les lignes ou il ya le Checkbox et je clique sur un bouton j'execute les traitements que je veux .

La problème c'est lorsque je coche les chechbox du repeater et je clique sur le bouton rien ne se passe malgré que tous est juste et sans aucune faute de compilation

voici nom code dans aspx :

<HeaderTemplate>
</HeaderTemplate>

----
,

,
,

----

Quantité :,
'>,

----

Description :,
'>,

<FooterTemplate >

</FooterTemplate>


code dans la page aspx.vb:

Dim cn As New SqlConnection(" Mon chaine de connection ....")
Dim reqRep As String
cn.Open()
reqRep "Select Article.CodeArti ,LibeArti, QuanArtiDema , DescArtiDema from AppINTT.dbo.LigneDemande ,AppINTT.dbo.Article where LigneDemande.CodeArti Article.CodeArti and LigneDemande.CodeDema = " & Var & ""
Dim DS As New DataSet
Dim Adap As New SqlDataAdapter(reqRep, cn)
Adap.Fill(DS)
Me.RepModification.DataSource = DS
Me.RepModification.DataBind()

le code de bouton:

For i = 0 To Me.RepModification.Items.Count - 1
If CType(Me.RepModification.Items(i).FindControl("CB"),
CheckBox).Checked Then
'suite d'instriction
End If
Next

le repeater est s'affiche correctement lors de la chargement de la page mais lorsque je coche le checkbox et je clique sur le bouton ASP.Net ne detecte pas cet évenement , existe -il autre méthode pour cette probléme ?

un grand Merci d'avance ! est que quelqu'un peut m'aider ?

4 réponses

cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
25 mai 2011 à 08:38
Salut,

l'event n'est pas joué ?
tu es passé en debug pour être sûr qu'il ne passait pas dedans ?
peux-tu nous montrer le code du bouton côté ascx ?
0
DSI31 Messages postés 3 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 27 mai 2011
26 mai 2011 à 00:48
Salut , oui j'ai démarré le debougage plusieur fois , mais c'est la même chose rien ne se passe malgré que tous est juste je pense qu'il ne sagit pas d'une erreur dans la programmation mais c'est une chose qui est relié avec les performance des méthodes utilisés.



/b voici mon code de bouton dans la page aspx:



voici le code de bouton dans la page aspx.vb

Protected Sub BtModif_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtModif.Click
Dim cn As New SqlConnection("Ma chaine de connexion.......")
Dim cmd As New SqlCommand
cn.Open()
cmd.Connection = cn
Dim Article As Integer
For i = 0 To Me.RepModification.Items.Count - 1
If CType(Me.RepModification.Items(i).FindControl("CB"), CheckBox).Checked Then
Article = CType(Me.RepModification.Items(i).FindControl("DropDownListArti"), DropDownList).SelectedValue
cmd.CommandText " Delete from AppINTT.dbo.LigneDemande where LigneDemande.CodeArti " & Article & ""
cmd.ExecuteNonQuery()
End If
Next
End Sub

Remarque: j'ai essayé d'utiliser un control SqlDataSource qui va recupérer les données à partir une source des données et j'ai le relié avec le control repeater , je trouve que avec cette methode ca fonctionne correctement et je peut par la suite cocher les ChechBox du repeater . [b]Mais cette méthode ne convient pas avec mes besoins car je veut procéder à faire quelques traitement lors de l'affichage du repeater c.a.d (lors de la chargement de la page) et avec la méthode Load ne me donne pas de resultat lorsque le chechBox du repeater est coché .Donc si vous dinstinguer ,il ne sagit pas d'une erreur de programmation mais il me semble c'est une question de performance des méthodes utilisé.
avez vous une ideé ? un grand merci d'avance aider moi s'il vous plait !!!
0
cs_jopop Messages postés 1540 Date d'inscription lundi 26 mai 2003 Statut Membre Dernière intervention 1 août 2013 12
26 mai 2011 à 08:45
Re,

dans le code de ton bouton (côté ascx), rajoute l'attribute :
onclick="BtModif_Click"
0
DSI31 Messages postés 3 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 27 mai 2011
27 mai 2011 à 04:14
Salut,
Non ce n'est pas ca!! ce n'est pas l'événement Click du bouton qui n'a pas jouer! mais c'est le control CheckBox du repeater qui n'a pas retourné de resultat lorsqu'il est coché , l'événement Click du bouton se fonctionne correctement ,déja je l'éssayé avec d'autre exemple , ca marche . Mais la probléme figure dans le control CheckBox du repeater , je veux t'expliquer miex que ca:
j'ai un repeater qui contient trois labels et un CheckBox, les labels vont afficher des données à partir de la BD lors de la chargement de la page comme j'ai t'expliqué précédemment. j'ai aussi un bouton en dehors du repeater (n'appartient pas au repeater). lorsque je clique sur ce bouton je veux parcourir le repeater et à chaque fois ou je trouve un CheckBox coché (dans le repeater) je supprimerai un article de la DB comme j'ai te montré hier. la probléme c'est que le CheckBox ne retourne pas une valeur lorsqu'il est coché .Déja j'ai essayé d'afficher un MsgBox lorsque le CheckBox est coché mais en vain le message aussi ne s'affiche pas . Autrement dit et d'aprs mon avis il me semble que le serveur ASP.Net considére que le CheckBox du repeater n'est pas activé même si CheckBox.Checked = True s'achant que j'ai utilisé le code suivant pour afficher le repeater lors de la chargement de la page:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim cn As New SqlConnection("Ma chaine de connexion...")
Dim reqRep As String
cn.Open()
reqRep = "Select ........"
Dim DS As New DataSet
Dim Adap As New SqlDataAdapter(reqRep, cn)
Adap.Fill(DS)
Me.RepModification.DataSource = DS
Me.RepModification.DataBind()
End Sub

Remarque:
j'ai essayé d'utiliser un control SqlDataSource qui va recupérer les données à partir de la source de données(BD) et j'ai relié le repeater avec le control SqlDataSource en enlevant bien sur le code qui se trouve dans le Load de la page , et avec cette methode l'événement du CheckBox a joué et j'ai pu faire par la suite le traitement que je veut mais malheureusement cette methode ne répond à mes besoins car je veut procéder à faire des traitement sur le repeater lors de son affichage , c'est pour ce là j'ai te dis que c'est une question des performances des méthodes utilisées.
as - tu une méthode ou une astuce qui me permet d'afficher le repeater et à la fois d'interroger les CheckBox ? Grand Merci pour ton aide!
0
Rejoignez-nous