Remplissage de Datagrid [Résolu]

Signaler
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009
-
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
-
Bonjour,

J'ai un problème de remplissage de Datagrid :

En fait je remplie a la main un dataset (les données sont particulières et dépendent de certains critères). pour cela :

dim DS as New Dataset

dr=ds.tables(0).NewRow

etc..

DG.datasource=DS

DG.Datemember=DS.Tables(0).TableName

Ca ca marche. le seul probleme s'est que comme je le crée à la main,
lors de l'édition d'une ligne, mes champs se retrouvent éditables en
zone de texte (textbox). Or moi ce que j'aimerais s'est avoir des
DropDownList...

Comment faire ?

8 réponses

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

voici des liens avec des examples... (il faut passer par les Templates)
http://scottwater.com/articles/DynamicItemTemplateshttp://www.devx.com/vb2themax/Article/19908

yopyop

PS:
je te montrais juste un example que j'ai trouvé sur le net... je ne vais pas coder ton applic à ta place non plus ....
et pour ton information, il n'y a pas une ligne de HTML dans le bout de code que j'ai posté ... mon petit
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
Admettons que tu as une liste de catégories:



<%# DataBinder.Eval(Container.DataItem, "CategoryName") %>


<EditItemTemplate>
= " <%# GetCategories() %> "/>
</EditItemTemplate>


Dans ton code behind tu auras:
<% @Import Namespace ="System.Data" %>
<% @Import Namespace="System.Data.SqlClient" %>
<script language="vb" runat="server">
'Create a connection
Dim myConnection as New SqlConnection( connString )
Dim ddlDataSet as DataSet = New DataSet()

Function GetCategories() as DataSet
'Populate the ddlDataSet
Const strSQLDDL as String = _
"SELECT FAQCategoryID, Name FROM tblFAQCategory ORDER BY Name"

Dim myDataAdapter as SqlDataAdapter = New _
SqlDataAdapter(strSQLDDL, myConnection)

myDataAdapter.Fill(ddlDataSet, "Categories")

Return ddlDataSet
End Function

yopyop
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
oups, désolé pour la présentation

yopyop
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009

non mais ca j'y arrive deja !
En plus vu que mes données sont spéciales et dépendent de certaines critere je n'utilise pas de requete sql.
Mais de toute facon le remplissage du datagrid fonctionne. le seul inconvénient est que si je ve editer une ligne j'obtien des textbox. Or moi ce que je veu ce sont des dropdownlist !!! Et pour compliquer un peu je ne connais pas a l'avance le nombre de colonnes...(donc pas de datagrid direct en html! !!)
(hum le vb.net mélangé au html est a eviter mon grand...d'ou l'interet du .NET !!!)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Et pourquoi ne réagirais tu pas à l'evenement edititem ? a partir de la tu pourras connaitre le nombre de colonne que t'as et normalement tu pourras mettre ce que tu veux dedans ...

J'ai jamais fait, mais c'est en théorie possible :) mais ca demande quelques lignes de code et beaucoup de debug :p


<HR>
Cyril - MCP ASP.net
Webmaster de : Hoshimi.CodeS-SourceS.fr
Messages postés
79
Date d'inscription
mardi 29 juin 2004
Statut
Membre
Dernière intervention
18 décembre 2006
3
Bonjour,
Si j'ai bien compris, tu veux pouvoir, lorsque tu edites ton datagrid,avoir des dropdownlist.

As tu essayé ceci?
<COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS><COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS><COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS><COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS>
<COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS><COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS>


<Columns>




<EditItemTemplate>




</EditItemTemplate>




</Columns>



ou si tu as visual studio tu crée une colonne modéle et en mode design, tu fais clic droit modifier le modèle.
<COLUMNS><EDITITEMTEMPLATE></EDITITEMTEMPLATE></COLUMNS>

Les programmeurs sont rois....Ceux qui ne croient pas en nous sont des fous...
Messages postés
188
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
10 août 2009

""

<%# DataBinder.Eval(Container.DataItem, "CategoryName") %> <EditItemTemplate> "/> </EditItemTemplate>


Dans ton code behind tu auras:

<% @Import Namespace="System.Data" %>

<% @Import Namespace="System.Data.SqlClient" %>

""

SI dsl ca c'est pas fait pour faire parti des fichier de code vb ou autre : tu le met dans le *.aspx et non *.asp.vb...

Le "mon grand" n'etait pas mechant, c'est juste une habitude...

J'ai déjà resolu mon probleme en fait (merci bcp a tous d'avoir essayé de m'aider)

Vu que j'étais un peu pressé, j'ai du créer un dataset et le datagrid
"à la main", en créant colonne apres colonne et ligne ppar ligne...
Fastidieux et pas maintenable du tout mais bon j'étais dans l'urgence

en tout cas merci Yopyop, je viens de survoler les liens que tu m'as
filé, ca a l'air plus intéressant !!!! Ca m'aurais été super utile !!!
Messages postés
586
Date d'inscription
lundi 7 janvier 2002
Statut
Membre
Dernière intervention
10 février 2010
1
no problemo, je ne l'ai pas pris mal

mais je me répète.. c'était juste un example (trouvé sur le web .. cut & paste... paske c'est emm... de tout retapper... )
et en étant encore plus pertinent , ce code utilise un dataset et c'est vraiment pas le bon truc (au niveau architecture) ..
surtout en asp.net...(quel intérêt?...).

mais bon... on va pas s'étendre là-dessus

Les liens sont pas mal intéressants (bonne voie pour aller vers une bonne architecture objet).

a+

yopyop