begin process at 2012 05 28 11:46:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

ASP.net

 > 

Recuperation de valeur dans une datalist


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Recuperation de valeur dans une datalist

mercredi 25 août 2004 à 12:48:52 | Recuperation de valeur dans une datalist

drakula

Salut la compagnie !
Voila j'ai un leger soucis, je voudrais recuperer la valeur d'une checkbox html qui est contenue dans une datalist dont voici le source :

<asp:datalist id="dlProductRange" runat="server">
<SelectedItemStyle Wrap="False"></SelectedItemStyle>
<EditItemStyle Wrap="False"></EditItemStyle>
<AlternatingItemStyle Wrap="False"></AlternatingItemStyle>
<SeparatorStyle Wrap="False"></SeparatorStyle>
<ItemStyle Wrap="False"></ItemStyle>
<ItemTemplate>
<INPUT type="checkbox" name="cbxPR" id="cbxPR"
value="<%#Container.DataItem("ID")%>"
title="<%#Container.DataItem("Name")%>"
runat="server" >
<span class="subHeader2">
<%#Container.DataItem("Name")%>
</span>
</ItemTemplate>
</asp:datalist>


Dans mon code behind, j'ai déclaré une variable "checkbox" de type System.Web.UI.HtmlControls.HtmlInputCheckBox
et mon recuperer celle-ci voila comment je m'y prend :


Dim listItem As DataListItem
Dim cbxTest As System.Web.UI.HtmlControls.HtmlInputCheckBox

For Each listItem In dlProductRange.Items
cbxTest = CType(listItem.FindControl("cbxPR"),
System.Web.UI.HtmlControls.HtmlInputCheckBox)
Response.Write( cbxTest.Value() & "<br>")
Next


La methode findControl me renvoi null a chaque fois
Alors ma question est : Où est le probleme ?


font=Comic Sans MS]C'est pô moi, j'ai rien touché ![/font=Comic Sans MS]
jeudi 26 août 2004 à 13:40:17 | Re : Recuperation de valeur dans une datalist

jesusonline

Membre Club Administrateur CodeS-SourceS
Le pourquoi du problème ce n'est pas compliqué, ca vient de cette ligne

cbxTest = CType(listItem.FindControl("cbxPR"),
System.Web.UI.HtmlControls.HtmlInputCheckBox)

Car qd tu recherche cbxPR il n'existe pas. Ton Datalist va te modifier l'id du Checkbox, pour que celui ci devienne unique, en effet dans ton datalist, tu as <INPUT type="checkbox" name="cbxPR" id="cbxPR" et chaque balise input doit avoir un name et id unique.

Mais je me rappelle plus comment faire ca proprement, il existe bien des bidouilles car il me semble que l'id du checbox sera de la forme cbxpr1 et le suivant cbxpr2 etc... donc l'astuce consisterait à faire une boucle de ce genre

dim i as integer

For Each listItem In dlProductRange.Items
i += 1
cbxTest = CType(listItem.FindControl("cbxPR" & i.tostring),
System.Web.UI.HtmlControls.HtmlInputCheckBox)
Response.Write( cbxTest.Value() & "<br>")
Next

mais je trouve pas cette méthode tres propre ... et comme j'ai pas l'habitude de travailler avec ces objets, je ne sais plus comment le faire proprement (et ca m'enerve !!!)

Je recherche ca, et je te redis

@+

Cyril
jeudi 26 août 2004 à 13:49:26 | Re : Recuperation de valeur dans une datalist

jesusonline

Membre Club Administrateur CodeS-SourceS
Voici une solution non testé.
Cette solution est un peu plus propre, mais aussi un peu plus bourrin ...

Ce que je fais : je fais une nouvelle class : qui est une collection de Checkbox


Private Class CheckBoxCollection
Inherits CollectionBase

Default ReadOnly Property Item(ByVal index As Int32) As CheckBox
Get
Return CType(Me.List.Item(index), CheckBox)
End Get
End Property

Public Function Add(ByVal Check As CheckBox) As CheckBox
Me.List.Add(Check)
Return Check
End Function

End Class


puis je regarde tout les controls du datalist, et si il y en a qui est un checkbox, je l'ajoute à la collection


Dim CheckBoxColl As New CheckBoxCollection

For Each c As Control In dl.Controls
Try
CheckBoxColl.Add(CType(c, CheckBox))
Catch ex As Exception
End Try
Next

For Each Check As CheckBox In CheckBoxColl
Response.Write(Check.Text & " " & Check.Checked)
Next

(dl est le nom du datalist)

attention, ca met tout les checkbox du datalist ... si tu veux ajouter juste les checkbox ayant l'id cbxPR il faudrais surement faire un truc de ce genre :


Try
Dim Check As CheckBox = CType(c, CheckBox)
If Check.ClientID.Substring(5) = "cbxPR" Then
CheckBoxColl.Add(Check)
End If
Catch ex As Exception
End Try


Je sais pas si ca marche, car j'ai pas testé, mais je vois pas de problème, par contre j'emet un gros doute pour le dernier bout de code :)

@+




Cyril
vendredi 27 août 2004 à 09:59:02 | Re : Recuperation de valeur dans une datalist

drakula

OKI Merci ;-)
vais essayer ca et pis on verra...;-)

C'est pô moi, j'ai rien touché !


Cette discussion est classée dans : web, code, system, valeur, datalist


Répondre à ce message

Sujets en rapport avec ce message

"La valeur n'est pas comprise dans la plage attendue" [ par kallahan03 ] Bonjour,Souhaitant crypter la chaine de connection a la base Sql Server dans le fichier web.config, j'ai utilisé DPAPI. Voir exemple ici.La méthode et Recherche dans un catalogue Index Server [ par sisi187 ] Hello, Je suis entrain de d'essayer de faire des requetes dans un catalogue index server se trouvant dans le répertoire C:/inetpub/catalog.wci. j'ai datalist dans datalist [ par magat ] j'ai positionné un datalistA (qui vient d'un user control "User_Control_Furnace1") dans un  EditItemTemplate d'un autre datalistB , ça marche  le se dropdownlist + alert javascript sous firefox => problème [ par gr54 ] Bonjour à tous, J'ai développé une appli asp.net et c# (3.5) qui utilise une dropdownlist, le tout en ajax via un updatepanel. Dans certains cas, j'a Problème d'enregistrement de variables de session [ par jmmontes ] Bonjour, J'ai un site installé sur un ordinateur Windows XP sur un domaine. Je m'y connecte de 2 manières sur le poste XP qui fait office de serveur Problème d'enregistrement de variables de session [ par jmmontes ] Bonjour, J'ai un site installé sur un ordinateur Windows XP sur un domaine. Je m'y connecte de 2 manières sur le poste XP qui fait office de serveur transformer ce code c# en asp [ par caspertinie ] bonjour; je vous integrer ce code c# dans une site web en asp et j'ai besoin de cette code avec vb pas c# using System; using System.Collections.Gene erreur Asp.net [ par kamsy ] Bonjour, je rencontre depuis un petit moment une erreur 1309 que je n'arrive pas à solutionner. pour faire court : j'ai une petit application qui doit Problème d'enregistrement de variables de session [ par jmmontes ] Bonjour, J'ai un site installé sur un ordinateur Windows XP sur un domaine. Je m'y connecte de 2 manières sur le poste XP qui fait office de serveur System.Data.DataRowView [ par MohammedTsdi2011 ] Voici mon Code: Imports System.Data.SqlClient Partial Public Class WebForm1 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,515 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales