Charger des Valeurs dans une DATALIST

Signaler
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016
-
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
-
Bonjour,



J'ai un petit soucis au niveau de mon appli.

Mon projet utilise une datalist. Dans ma classe de base j'ai mit en variable GLOBALE un datareader que j'ai appelé MonReader1.



Je le charge de la manière suivante :



Public Sub InitMonReader1()

cnn.Open()

Dim sql As String



sql = "select idpers from personne"

Dim cmd As SqlCommand = New SqlCommand(sql, cnn)



MonReader1 = cmd.ExecuteReader(CommandBehavior.Default)



Dim test As String

MonReader1.Read()



test = MonReader1(0).ToString

End Sub





Alors mon soucis c'est : MonReader1 se remplit bien (la variable Test
prend bien la valeur désirée), mais quand dans mon code HTML de mon
Datalist je fais :



asp:dropdownlist
id="LstDate" style="Z-INDEX: 102; LEFT: 128px; POSITION: absolute; TOP:
8px" runat="server" DataSource = '<%#MonReader1%>' Width="136px"
Height="24px" AutoPostBack="True"



alors ma dropdownlist contenu ds mon EditItemTemplate de ma datalist ne charge aucune valeur.



Je pense que je lie mal les données entre ma variable globale MonReader1 et ma DropDownList de ma datalist.





Si quelqu'un connais la bonne syntaxe ca s'ré sympa de m'en faire part :)



MERCI d'avance


Cyberice

10 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Je vais te degouter :o j'etais justement en train de bosser avec une datalist en .net 2 bien sur. et je me suis dit "tient comment ca se passe pour faire son truc en .net 2 ?"

j'ai donc mis un drop en mode design, puis toujours en mode design, fait un drag & drop de la base sur ma page, pour créer un objet sqldatasource, puis dans le smart tag du drop, j'ai choisis mon datasource, enregistrer la page, rafraichir IE, et aprés une petite minute, je me suis dit "ah oui ca marche bien" ;)

Et voici le code que le designer m'a écrit : je n'ai fait aucun click !!!



Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

Tu sais quoi ? envoie moi la mise a jour .net

Cyberice
Messages postés
87
Date d'inscription
samedi 6 décembre 2003
Statut
Membre
Dernière intervention
7 novembre 2016

Bon bah ta soluce plante. Même problème que l'autre fois...
A savoir :



Public DS2
As
New DataSet



Private
Sub Page_Load(
ByVal sender
As System.Object,
ByVal e
As System.EventArgs)
Handles
MyBase.Load



If
Not Page.IsPostBack
Then



Call DateCharge()

Call FillDataListDate(LstDate.SelectedValue)

Call InitMonReader1()

Dim MaCommande
As
New SqlDataAdapter("select idpers from personne", cnn)
cnn.Open()
MaCommande.Fill(DS2, "idpers")
cnn.Close()
cnn.Dispose()



End
If



End
Sub



Private
Sub DataList1_ItemCreated(
ByVal sender
As
Object,
ByVal e
As System.Web.UI.WebControls.DataListItemEventArgs)
Handles DataList1.ItemCreated



Dim drop
As DropDownList =
CType(e.Item.FindControl("DropDownList1"), DropDownList)

drop.DataSource = DS2 <=== ICI CA PLANTEdrop.DataTextField "CategoryName" drop.DataValueField "CategoryName"
drop.DataBind()



End
Sub

alors le message d'erreur :

La référence d'objet n'est pas définie à une instance d'un objet.

Cyberice
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
salut,

essaye d'enlever If Not Page.IsPostBack Then

yopyop
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Arf, on a oublié de continuer notre discution.

pour info, on a donc fini ce probléme via msn :p en fait, le probleme etait du au fait qu'il cherche à modifier des valeurs contenus dans le EditItem, et e.item regarde juste le itemtemplate, on a deplacé le code vers l'evenement onedit et la e passe aussi par le controle itemtemplate et non edititemtemplate :-/ c pas normal mais c comme ca.

J'ai rien vu permettant d'aller dans le edititemtemplate a partir de e donc dans l'itemtemplate, j'ai mis un panel, avec l'un contenant le mode normal, et l'autre l'edit, comme ca, j'ai pu recuperer le drop avec e.item.findcontrol, et on a caché le panel suivant ou l'on etai dans le code


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
re,

perso, lorsque j'ai une liste dans un EditItemTemplate je fais (pour une dropdownlist):

DataSource="<%# GetCategories() %>"

Et dans mon code behind GetCategories me retourne un datareader ( ou un dataset mais j'aime pas les dataset...surtout pour aspx).

mais je suis peut-être hors sujet...
yopyop
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
C'est ce que je lui avais proposé, mais ca marché pas non plus :-/ j'ai d'ailleurs pas compris pourquoi non plus :(

mais je trouve quand meme dommage que dans l'event OnEdit, e.item ne fait pas reference à l'editItemTemplate ...


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
re,

désolé mais je comprends pas trop le problème....

Quand je fais :

OnEditCommand="dgTopics_EditData"


Protected
Sub dgTopics_EditData(
ByVal sender
As
Object,
ByVal e
As DataGridCommandEventArgs)


dgTopics.EditItemIndex = e.Item.ItemIndex


BindDataGrid("", ddlTopicTypes.SelectedValue.ToString())



End
Sub

On retrouve facilement l'index...et à partir de là je fais ce que je veux.

S'il passe par DataList1_ItemCreated c'est normal que cela ne fonctionne pas....
Il faut check quel est l'item créé.

D'après ce que j'ai compris, le e.item fonctionne que ce soit en mode d'édition ou non...

En fait e.item représente un item qui peut être en mode d'édition ou non (ce qui me semble bien vu ... c'est de toutes façons un item... les headers sont égalements des items...) et tu flags un des items pour le mettre en "mode" edit dgTopics.EditItemIndex = e.Item.ItemIndex.

Si ton datagrid est correctement fait, e.item.itemindex te retourne l'élément que tu veux éditer ... tout dépends de l'événement qui a été déclenché ...non ?

Bref, il y a 500000 façons de faire...

yopyop
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Faudrais que Cyberice67 repasse par la pour montrer le bout de code qui merdait.

mais en gros il y avait une datalist

Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
il aurait peut-être fallu passer par le onItemDatabound.. mais du moment que ca fonctionne.

yopyop