Poulipe
Messages postés171Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 9 mai 2012
-
7 oct. 2004 à 10:03
Poulipe
Messages postés171Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 9 mai 2012
-
7 oct. 2004 à 13:04
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...
Poulipe
Messages postés171Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 9 mai 2012 7 oct. 2004 à 12:34
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......
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 ...
Poulipe
Messages postés171Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 9 mai 2012 7 oct. 2004 à 11:10
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 oct. 2004 à 11:41
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
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
Poulipe
Messages postés171Date d'inscriptionvendredi 14 septembre 2001StatutMembreDernière intervention 9 mai 2012 7 oct. 2004 à 12:08
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
jesusonline
Messages postés6814Date d'inscriptiondimanche 15 décembre 2002StatutMembreDernière intervention13 octobre 201029 7 oct. 2004 à 12:56
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 :)