[C# - ASP .NET2] Boucle sur Datalist ?

[Résolu]
Signaler
Messages postés
7
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006
-
Messages postés
7
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006
-
Bonjour,

Je me casse le dents depuis quelques jours.
je m'explique :

En gros je veux afficher un "type d'article" et au dessous la liste des articles correspondants a l'aide d'un datalist (maListePart) dont les templates sont définis dans l'aspx.

Sachant que la méthode GetDataSourcePart retourne bien le dataview escompté, je n'arrive pas a obtenir ce que je veux a savoir :

type
article
article
typr
article
etc...

Voici le code :


while (drTypes.Read())
{

this.tid =
Convert.ToInt16(drTypes[
"type_id"]);

HyperLink monLinkType =
new
HyperLink();

TableRow tTr =
new
TableRow();

TableCell tTd =
new
TableCell();
monLinkType.Text = drTypes[
"type_libelle"].ToString();
monLinkType.NavigateUrl =
"produit.aspx?cid=" +
this.cid +
"&pid=" +
this.pid +
"&tid=" + drTypes [
"type_id"].ToString();
tTd.Controls.Add(monLinkType);
tTr.Cells.Add(tTd);
maTable.Rows.Add(tTr);


TableRow aTr =
new
TableRow();

TableCell aTd =
new
TableCell();



this.maListePart.DataSource =
this.getDataSourcePart(mesRequetes.getArticlesByProduitType(
this.cid,
this.pid,
this.tid));
this.maListePart.DataBind();

aTd.Controls.Add(this.maListePart);
aTr.Cells.Add(aTd);
maTable.Rows.Add(aTr);

}

Si kkun aune idée la dessus

Merci a vous,

Aral.

7 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
Bonjour,

c'est normal, tu ne peux pas faire ca comme ca !

il faut construire ton datalist dans ta boucle

datalist dl = new DataList();
dl.etc...


<HR>
Cyril - MVS - MCP
Messages postés
7
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006

Bonjour,

Merci de ta réponse Cyril.

J'ai effectivement dèjà instancié mon datalist dans la boucle mais sans résultat au niveau de l'affichage.

Crois-tu que cela puisse être parce que le datalist est déclaré dans la page aspx ?

Je continue de chercher...

Aral.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
29
oui c'est ce que je viens de dire, le problème est que tu n'instancies pas ton controle dans la boucle mais dans la page ...


<HR>
Cyril - MVS - MCP
Messages postés
7
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006

Ok... désolé :)

Mais Comment faire alors pour attribuer a mon Datalist les itemTemplate et AlternateItemTemplate souhaités sachant qu'ils contiennent des LinkButton et autres controles servers?

Je suis désolé, si tu me dis que la réponse est simple a trouver sur google (qui est aussi mon ami et que j'ai déjà consulté) je comprendrai ;)

Aral.
Messages postés
7
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006

Je me penche la dessus,

Merci moulte :)

Aral.
Messages postés
7
Date d'inscription
mercredi 3 mai 2006
Statut
Membre
Dernière intervention
19 mai 2006

J'ai enfin trouvé ma solution qui est la suivante :

Dans la webform :


while (drTypes.Read())
{

maListe.ItemTemplate = LoadTemplate(
"~\\templates\\template_anonyme.ascx");
maListe.DataSource =
this.getDataSourcePart(mesRequetes.getArticlesByProduitType(
this.cid,
this.pid,
this.tid));
}

Et le template ascx en VB :


<%
@
Language
=
"VB" %>

<%
# DataBinder.Eval(
CType(Container, DataListItem).DataItem,
"mon_champs_bind_contenu_dans_ma_datatable") %>

Merci encore pour l'orientation,

Bon dev,

Aral