begin process at 2012 02 11 03:19:10
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive ASP & ASP.NET

 > 

Archives ASP & ASP.NET

 > 

AU SECOURS !!!!

 > 

Charger des Valeurs dans une DATALIST


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

Charger des Valeurs dans une DATALIST

dimanche 29 mai 2005 à 12:08:20 | Charger des Valeurs dans une DATALIST

cyberice67

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
dimanche 29 mai 2005 à 13:17:54 | Re : Charger des Valeurs dans une DATALIST

jesusonline

Membre Club Administrateur CodeS-SourceS
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 !!!

<asp:DropDownList ID="DropDownList1" runat="server" DataSourceID="SqlDataSource1"DataTextField="RegionID" DataValueField="RegionID"></asp:DropDownList>

<
asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString1 %>" DeleteCommand="DELETE FROM [Region] WHERE [RegionID] = @original_RegionID" InsertCommand="INSERT INTO [Region] ([RegionID], [RegionDescription]) VALUES (@RegionID, @RegionDescription)" ProviderName="<%$ ConnectionStrings:NorthwindConnectionString1.ProviderName %>" SelectCommand="SELECT [RegionID], [RegionDescription] FROM [Region]" UpdateCommand="UPDATE [Region] SET [RegionDescription] = @RegionDescription WHERE [RegionID] = @original_RegionID">
    <InsertParameters>
      <asp:Parameter Name="RegionID" Type="Int32" />
      <asp:Parameter Name="RegionDescription" Type="String" />
   </InsertParameters>
   <UpdateParameters>
      <asp:Parameter Name="RegionDescription" Type="String" />
      <asp:Parameter Name="original_RegionID" Type="Int32" />
   </UpdateParameters>
   <DeleteParameters>
      <asp:Parameter Name="original_RegionID" Type="Int32" />
   </DeleteParameters>
</asp:SqlDataSource>


Avec le vieux .net 1 () il faut faire tout ca

Public ds As New DataSet

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim conn As New SqlConnection("Data Source=PROD;Initial Catalog=Northwind;Integrated Security=True")
conn.Open()
Dim myCommand As New SqlDataAdapter("SELECT [CategoryName] FROM [Categories]", conn)
myCommand.Fill(ds,
"Authors")
conn.Close()
conn.Dispose()
myCommand.Dispose
End Sub

Protected 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 = ds
drop.DataTextField =
"CategoryName"
drop.DataValueField = "CategoryName"
drop.DataBind()
End Sub

En mettant bien sur un drop d'ID DropDownList1 dans ta datalist :p


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
dimanche 29 mai 2005 à 20:15:09 | Re : Charger des Valeurs dans une DATALIST

cyberice67

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

Cyberice
dimanche 29 mai 2005 à 20:52:37 | Re : Charger des Valeurs dans une DATALIST

cyberice67

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 PLANTE
drop.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
mercredi 1 juin 2005 à 10:55:00 | Re : Charger des Valeurs dans une DATALIST

Yopyop

salut,

essaye d'enlever If Not Page.IsPostBack Then

yopyop
mercredi 1 juin 2005 à 12:16:15 | Re : Charger des Valeurs dans une DATALIST

jesusonline

Membre Club Administrateur CodeS-SourceS
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 



Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mercredi 1 juin 2005 à 13:59:24 | Re : Charger des Valeurs dans une DATALIST

Yopyop

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
mercredi 1 juin 2005 à 14:08:17 | Re : Charger des Valeurs dans une DATALIST

jesusonline

Membre Club Administrateur CodeS-SourceS
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 ...


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
mercredi 1 juin 2005 à 14:35:30 | Re : Charger des Valeurs dans une DATALIST

Yopyop

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
mercredi 1 juin 2005 à 14:54:09 | Re : Charger des Valeurs dans une DATALIST

jesusonline

Membre Club Administrateur CodeS-SourceS
Faudrais que Cyberice67 repasse par la pour montrer le bout de code qui merdait.

mais en gros il y avait une datalist

<asp:datalist etc...>
<itemtemplate><asp:label id="lbl1" /></itemTemplate>
<EditItemTemplate><asp:DropDownList id="Drop1" /></EditItemTemplate>
</asp:datalist>

le problème etait de remplir Drop1
en se mettant dans

private sub dl1_onEditItemCommand(sender as object, e as trucEventArgs) handle dl1.onEditItemCommand

dl1.EditItemIndex = e.Item.ItemIndex

'Si je faisais
drim drop as DropDownList = ctype(e.item.findcontrol("Drop1"), DropDownList)
'drop n'existe pas.

'Par contre
dim lbl as Label = ctype(e.item.findcontrol("lbl1"),label)
'lbl existe et est accessible ...

end sub


Ce que je voulais donc dire c'est que le e de private sub dl1_onEditItemCommand(sender as object, e as trucEventArgs)  ne se rapporte pas à editItemTemplate mais a ItemTemplate et je n'ai pas trouvé de moyen d'acceder à l'editItemTemplate à partir de e (il doit surement y avoir un moyen mais, j'ai rien vu)

Donc la solution que je lui ai proposé au lieu de

<asp:datalist etc...>
<itemtemplate><asp:label id="lbl1" /></itemTemplate>
<EditItemTemplate><asp:DropDownList id="Drop1" /></EditItemTemplate>
</asp:datalist> 

<asp:datalist etc...>
<itemtemplate><asp:panel id="pnl1"><asp:label id="lbl1" /></asp:panel>
<asp:panel id="pnl2" visible="false"><asp:DropDownList id="Drop1" /></asp:panel>
</EditItemTemplate>
</asp:datalist>


private sub dl1_onEditItemCommand(sender as object, e as trucEventArgs) handle dl1.onEditItemCommand

e.item.findcontrol("pnl1").visible= false
e.item.findcontrol("pnl2").visible= true

drim drop as DropDownList = ctype(e.item.findcontrol("Drop1"), DropDownList)
'et la on accés au Drop donc Datasource pius Databind : problème resolus :)

end sub


Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr

1 2

Cette discussion est classée dans : variable, sql, test, datalist, monreader1


Répondre à ce message

Sujets en rapport avec ce message

peut mettre une variable ds une chaine sql [ par serial ] peut on mettre une variable ds une chaine sqlexampledim valeurmoi=champ de ma table"SELECT*FROM table WHERE moi=valeur"?????j'ai essayer ca ne marche probleme SQL ??? ou variable ASP??? [ par peguman ] Je souhaite me connecter à une base après vérification de l'identité d'un client...Je passe en parametre le log et le pass et je les vérifies dans ma variable dans une requete SQL [ par hyle44 ] Bonjour,Je voudrais insérer une variable dans une requete SQL.Ma requete est"UPDATE fiche SET autre_activite='"ivar"' where num_fiche=tot" ou ma v Test requête nulle en ASP 3 [ par FLORALP ] AnthemisComment tester si une requête ne fournit pas de résultat en ASP après l'exécution de SQL="....." et deSet rs=OBJdbConnection.Execute(SQL) af Visualiser le résultat d'une requete SQL sous ASP [ par fyf08 ] Bonjour, Je voudrai récupérer le résultat d'une requête et non le contenu d'une colonne sur une BdD. Voici mon code : Session_Connection2 = "DRIVER={M Variable ASP [ par beber87 ] Bonjour et merci d'avance pour ceux qui m'aideron a résoudre mon problème.J'ai une base de donnée (MaBase) qui contient une table (Salarie) constituer IF variable est null [ par jeckel ] Salut à tous,Je commence seulement avec les variables ASP et j'aimerai réaliser un contrôle de saisir un champ dans une table MySQL qui ne permet pas Script VB exécuté deux fois [ par navya ] Bonjour,J'ai un problème avec mon code VB, j'ai créé des liens qui lorsqu'on clic dessus, cela lance un javascript qui met la valeur du lien dans un c Script VB exécuté deux fois [ par navya ] Bonjour, J requete sql avec variable checkbox [ par becavin ] Bonjour, J'aimerais faire un update avec des variables de collections de checkbox.  Exemple de html: response.write "<input type=checkbox name=chkAcce


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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 : 1,076 sec (4)

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