Compter des listebox .... [Résolu]

Signaler
Messages postés
171
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
9 mai 2012
-
Messages postés
171
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
9 mai 2012
-
bonjour,
sous asp.net, je creer des listbox dynamiquement selon une base de donnee....et je dois recuperer les choix de ces listbox, et jusque la, je n y arrive pas....j ai essaye avec for each "list" mais sans resultat....
ma question est donc comment tester les types de mes controls afin de filtrer les listbox...

merci

9 réponses

Messages postés
171
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
9 mai 2012

ca y est en faisant :

Dim varsearch As String
Dim LB As DropDownList
Dim c As Control
Dim j As Integer
For i = 0 To Me.tab_kat.Rows.Count - 1
For j = 0 To Me.tab_kat.Rows.Item(i).Cells.Count - 1
For Each c In Me.tab_kat.Rows.Item(i).Cells(j).Controls
If c.GetType.ToString = "System.Web.UI.WebControls.DropDownList" Then
LB = c
varsearch = varsearch & LB.SelectedItem.Value.ToString & ";"
End If
Next
Next
Next

If Len(varsearch) > 0 Then varsearch = Left(varsearch, Len(varsearch) - 1)
Response.Write(varsearch)

houa, merci encore
et je pense au rs... je me servirais de l objet sqlclient
si c est a ca que tu pensais......
Messages postés
202
Date d'inscription
jeudi 24 juin 2004
Statut
Membre
Dernière intervention
22 janvier 2009
1
Tu peux pas faire un truc du style :

for each item in Request.Form
If len(item.name) = 4 Then
...
End If
Next


En AsP, il me semble que ca marche, mais en ASP.NET, je te garantis rien
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
Je comprend pas la source de AshenShugar, je comprend pas le len(item.name=4 ???

sinon regarde ca : http://www.aspfr.com/code.aspx?ID=21286 cette source devrait je pense t'interesser.

j'ai déjà résolu cette question sur un autre post, mais je me rappelle plus du titre du sujet, j'avais utilisé une autre méthode, j'avais utilisé le viewstate ...

mais la source devrait dèjà bien t'eclairer :)

@+

Cyril
Messages postés
171
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
9 mai 2012

pour ma creation je fais comme ca :

If Not rs.BOF Or Not rs.EOF Then
While Not rs.EOF
Dim neuecel1 As New HtmlTableCell()
neuecel1.InnerHtml = celfont & rs.Fields("AR_RF_TEXT").Value & "
" & celfont_end
listbox1 = New DropDownList()
listbox1.ID = "lb_" & nb_cell
list_fullen(listbox1, rs.Fields("AR_KEY_1").Value)
neuecel1.Controls.Add(listbox1)
neuecel1.Align = "center"
neuecel1.VAlign = "top"
neuelinie.Cells.Add(neuecel1)
neuelinie.BgColor = "#98b7ff"
If nb_cell = 3 Then
nb_cell = 1
neuelinie.Height = "30"
neuelinie.ID = "linie_" & n
tab_kat.Rows.Add(neuelinie)
n = n + 1
neuelinie = New HtmlTableRow()
End If
nb_cell = nb_cell + 1
rs.MoveNext()
End While
neuelinie.Height = "30"
neuelinie.ID = "linie_" & n
tab_kat.Rows.Add(neuelinie)

End If
rs.Close()

j ai regarde l article, mais ca m a l air bien different de la methode que j ai faite. Est-ce que ma methode est incorrecte ?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
non ca ne m'a pas l'air si different que ca

mais juste un petit commentaire, les RecordSet sont dépassé avec asp.net il existe des objets qui sont plus adapté pour faire des connexions avec des bdd

mais pour revenir au problème tu fais bien
listbox1 = New DropDownList()
listbox1.ID = "lb_" & nb_cell

apres lorsque tu cliques sur le bouton qui envoie ta page au formulaire tu peux faire

Private Sub LeBouton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Dim LB as Listbox

for each c as controls in page.Controls
if left(c.id,3) = "lb_" then
try
LB = ctype(c,Listbox)
response.write(" LIstbox N° : " & substring(c.id,3) & LB.selectedvalues)
catch
'erreur
End Try
End if
next

End Sub

Le code si dessus est fait à la main et rapidement donc il se peut qu'il y ait des erreurs, mais je te donne le fil directeur :)

Sinon essaye de retrouver ma méthode avec le viewstate, elle est un peu plus complexe mais je la trouve mieux car ca evite le bloc try end try, qui essaye de faire qqchose d'asardeux

@+

Cyril
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
ici : http://www.aspfr.com/forum.v2.aspx?ID=292435

je pense que ca pourrait aussi t'interesser, je croyais que c'etait à peu pres le meme cas que toi mais non, mais tu pourras qd meme te servir de la source si tu arrives à la comprendre

Cyril
Messages postés
171
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
9 mai 2012

pour le rs, je suis d accord, mais ca viendra en optimisation de mon prog plus tard...

et pour ce que tu m a filer, ca me donne strictement rien, j ai declarer c en control car il me le demandait donc j ai ca,

Dim c As Control
For Each c In Me.tab_kat.Controls
i = i + 1
Response.Write(i & "
")
If Left(c.ID, 3) = "lb_" Then
Try
LB = CType(c, DropDownList)
listselectantwort.Items.Add(" LIstbox N° : " & c.ID & LB.SelectedItem.Text)
Catch
'erreur
Response.Write(Err.Description)
End Try
End If
Next

et quand je clic sur mon bouton pour recuperer les valeurs des "droplistbox", (j ai changer avec listbox)

il me "count" 3 controls sur ma page, j ai essayer de counter les controls dans ma table (tab_kat) mais il en trouve que 2 ??????
apparement ce sont les cellules trouvees

....mais ca avance...

bizarre bizarre

%-6
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
27
oui c'est aussi une facon de faire, tu parcours ton tableau cellule par cellule, alors que moi je te proposais de regarder tout les controles de la page.

Bizarre que tu n'y es pas arrivé avec ma méthode, mais l'important c'est que tu es trouvé une solution :)

@+

Cyril
Messages postés
171
Date d'inscription
vendredi 14 septembre 2001
Statut
Membre
Dernière intervention
9 mai 2012

comme je te disais avant, il ne trouvait que 3 controls sur ma page, dont ma table...c pour ca que j en suis arrive la...

a+