Insertion colonne d'un DataGrid?

Résolu
cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006 - 10 avril 2005 à 14:47
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 - 11 avril 2005 à 17:25
Bonjour,

Voilà, je travaille en mode Web et j'ai pour le moment un DataGrid qui contient 2 colonnes, la première possède une dizaine de cellules vides et j'aurais voulu savoir comment je pouvais faire pour insérer des données différentes dans chacune de ces cellule vides.

Merci.

15 réponses

cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006
11 avril 2005 à 16:34
Je viens de terminer le code suivant dans ma page HTML... tout fonctionne!
J'aurais dû faire ça depuis le début, vachement simple:


<Columns>



</Columns>

Merci pour l'aide, ++.
3
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
11 avril 2005 à 11:07
Salut , ta 1ere colone possede 10 cellulles par lignes ?
ou alors est ce ton datagrid qui possède 10 lignes ?

Dans le cas 1 ce ne sont pas 10 cellulles , mais une cellulle avec 10 zones text (textbox I presume ?)
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 12:33
bon, tu doit preciser la source des données et comment tu fais l'insertion dans dans ton DT

*************************
** DiBou a votre service **
*************************
0
cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006
11 avril 2005 à 13:10
Pour répondre à titeoe: C'est mon DataGrid qui fait 10 lignes et qui possède donc une colonne avec 10 lignes dont le contenu est vide, pas de TextBox, rien du tout, juste des cellules vides.

En réponse à dibouched, voici le code que j'utilise (GrilleProduits étant le DataGrid):
private void Page_Load(object sender, System.EventArgs e)
{
GrilleProduits.ID = "GrilleProduits";
GrilleProduits.AutoGenerateColumns = true;
GrilleProduits.Columns.Add(CreateBoundColumn("Produits"));
GrilleProduits.Columns.Add(CreateLinkColumn("http://www.qqch...", "_blank", "Commander", "Action"));
GrilleProduits.DataSource = CreateDataSource();
GrilleProduits.DataBind();
}

BoundColumn CreateBoundColumn(String HeaderTextValue)
{
BoundColumn column = new BoundColumn();
column.HeaderText = HeaderTextValue;
return column;
}

HyperLinkColumn CreateLinkColumn(String NavUrlValue, String TargetValue, String TextValue, String HeaderTextValue)
{
HyperLinkColumn column = new HyperLinkColumn();
column.NavigateUrl = NavUrlValue;
column.Target = TargetValue;
column.Text = TextValue;
column.HeaderText = HeaderTextValue;
return column;
}
... (suite)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006
11 avril 2005 à 13:13
ICollection CreateDataSource()
{
DataTable dt = new DataTable();
DataRow dr;


dt.Columns.Add(new DataColumn("Produits", typeof(string)));


string connStr= "Provider= Microsoft.Jet.OLEDB.4.0; Data Source=" + MapPath("./InfonLine.mdb");
OleDbConnection Connect= new OleDbConnection(connStr);
Connect.Open();
string sqlcom = "SELECT LibelleProduit FROM Produit ORDER BY LibelleProduit";
OleDbCommand Requete = new OleDbCommand(sqlcom, Connect);
OleDbDataReader rdr = Requete.ExecuteReader();
if (rdr != null)
{
while (rdr.Read())
{
string elem = rdr["LibelleProduit"].ToString();
ListeProduits.Items.Add(elem);
dr = dt.NewRow();
dr[0] = elem;
dt.Rows.Add(dr);
}
}
rdr.Close();


DataView dv = new DataView(dt);
return dv;
}

Voilà tout y est... je voudrais donc ajouter la chaine "elem" dans chacune des cellules vides de ma 1e colonne...
0
cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006
11 avril 2005 à 13:52
Pour la ligne "GrilleProduits.AutoGenerateColumns = true;", j'ai mis true pour les tests car en fait, ce que je veux faire c'est faire passer les infos de la seule colonne de la DataTable (étant la DataSource du DataGrid) dans la colonne vide... parceque je ne veux pas garder ça à true, je veux pouvoir créer des colonnes moi-même et non les générer automatiquement. Si c'est à true, mes colonnes ajoutées se placent avant les colonnes générées (Les colonnes générées ne sont pas prises en compte pour un Add ce qui fait que ça se place toujours au début du DataGrid quand on fait un Add)...

Le but de l'histoire c'est de placer une colonne hyperlink après la colonne des données et non pas avant, ce qu'il est impossible à faire si je manipule des colonnes générées automatiquement. D'où l'idée de déplacer les données de la seule colonne de la DataSource dans la 1e colonne vide qui a été ajoutée de moi-même et de faire passer l'autogénération à false pour cacher la colonne de la DataSource. J'aurai alors la 1ere colonne avec les données copiée de la 3e, la seconde étant la colonne hyperlink, la 3e colonne étant cachée...

Si il y a une autre idée, je ne suis pas du tout contre parceque je reconnais que ce n'est pas ce qu'il doit y avoir de mieux...
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 14:29
tu ajoute ca dans le code HTML de ta page entre et
''<%#DataBinder.Eval(Container,"DataItem.ton chanplink")%>'>

et tu doit obligatoirement eliminer
GrilleProduits.AutoGenerateColumns = true;",

DiBou
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 14:31
j'espere que ca va bien marcher bonne courage

DiBou
0
cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006
11 avril 2005 à 15:27
D'accord, mais, en fait, ce code là, il ajoute simplement un lien sur la page (je crois)... j'aimerais plutot avoir un Datagrid, avec comme 1ere colonne les données de la BD et comme 2e colonne, une HyperlinkColumn dans laquelle je place un lien "Commander" sur lequel je clique, un lien par ligne correspondant à la 1e colonne... comme ça...

Article | Action
-----------------------------
Donnée1 | Commander
Donnée2 | Commander
Donnée3 | Commander

... je me suis surrement mal exprimé tantot ou bien le code asp fait ça mais je n'ai pas saisi le principe...
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 15:34
c'est exactement ce que je te raconte tu met ton deuxiemme colone c'est dans le code HTML
essye le ca va marcher
comme ca


DiBou
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 15:37
excuser moi c'est plutot


asp:Hyperlink id=" identificateur
" runat="server" text="Commender" NavigateUrl='ici tu place le lien vers la page commender''>

DiBou
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 16:58
cliquer sur reponse accepter et bonne courage

DiBou
0
titeoe Messages postés 433 Date d'inscription samedi 26 avril 2003 Statut Membre Dernière intervention 4 décembre 2009 1
11 avril 2005 à 17:14
lol , félicitations , tu viens de passer de 50 lignes de code behind a 10 lignes de code ASPX...
0
cs_Zekez Messages postés 27 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 26 septembre 2006
11 avril 2005 à 17:21
Oui c'est vrai que c'est beaucoup plus léger! On passe un peu par tous les stades quand on ne comprend rien ... c'était vraiment mon cas!
0
dibouched Messages postés 219 Date d'inscription samedi 21 août 2004 Statut Membre Dernière intervention 17 juillet 2007 2
11 avril 2005 à 17:25
c'est toujours comme ca on devrait penser a tous pour enfin arriver
je suis tres content de vous tous

DiBou
0
Rejoignez-nous