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

cs_Araldite 7 Messages postés mercredi 3 mai 2006Date d'inscription 19 mai 2006 Dernière intervention - 3 mai 2006 à 17:27 - Dernière réponse : cs_Araldite 7 Messages postés mercredi 3 mai 2006Date d'inscription 19 mai 2006 Dernière intervention
- 5 mai 2006 à 11:25
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.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 4 mai 2006 à 11:08
Commenter la réponse de jesusonline
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 3 mai 2006 à 19:18
0
Merci
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
Commenter la réponse de jesusonline
cs_Araldite 7 Messages postés mercredi 3 mai 2006Date d'inscription 19 mai 2006 Dernière intervention - 4 mai 2006 à 10:25
0
Merci
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.
Commenter la réponse de cs_Araldite
jesusonline 6827 Messages postés dimanche 15 décembre 2002Date d'inscription 13 octobre 2010 Dernière intervention - 4 mai 2006 à 10:52
0
Merci
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
Commenter la réponse de jesusonline
cs_Araldite 7 Messages postés mercredi 3 mai 2006Date d'inscription 19 mai 2006 Dernière intervention - 4 mai 2006 à 11:01
0
Merci
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.
Commenter la réponse de cs_Araldite
cs_Araldite 7 Messages postés mercredi 3 mai 2006Date d'inscription 19 mai 2006 Dernière intervention - 4 mai 2006 à 11:15
0
Merci
Je me penche la dessus,

Merci moulte :)

Aral.
Commenter la réponse de cs_Araldite
cs_Araldite 7 Messages postés mercredi 3 mai 2006Date d'inscription 19 mai 2006 Dernière intervention - 5 mai 2006 à 11:25
0
Merci
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
Commenter la réponse de cs_Araldite

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.