Repeater Imbriqués avec DataSource différents
Bonjour,
Je cherche à afficher dynamiquement des données de ma base de données.
Pour cela j’utilise un premier contrôle Repeater.
Mes données proviennent de 2 requêtes différentes. Le résultat de la seconde requête dépend de la première (la requête 2 a besoin d’id généré par la requête 1).
J’utilise donc un second Repeater imbriqué dans le 1 pour afficher le résultat de la requête 2.
Le Repeater.DataSource de la requête 2 est donc différent de celui de la requete1.
J’ai essayé ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
protected void Page_Load(object sender, EventArgs e)
{
LoadMessage();
if (!IsPostBack)
{
ParentRepeater.DataSource = LoadMessage();
ParentRepeater.DataBind();
}
}
protected DataTable LoadMessage()
{
DataTable dt = new DataTable();
m = new Message();
dt = m.GetMessage();
return dt;
}
protected void ItemBound(object source, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater childRepeater = (Repeater)e.Item.FindControl("ChildRepeater");
DataTable dt = new DataTable();
dt = ParentRepeater.DataSource as DataTable;
DataTable dtCategory;
foreach (DataRow dr in dt.Rows)
{
dtCategory = new DataTable();
dtCategory = m.GetCategoriesForMessage(Convert.ToInt32(dr["Id"]));
childRepeater.DataSource = dtCategory;
}
childRepeater.DataBind();
}
} |
Mon dtCategory contient les bonnes données, mais au final ce sont les données du premier enregistrement qui apparaissent pour tous les enregistrements.
Comment puis-je faire pour que ce soit la bonne DataTable qui soit la DataSource?
Merci pour votre aide.