bonjour,
sur une page aspx j'ai un repeater ou j'affiche des liens comme ceci :
<asp:Repeater ID="Repeater2" runat="server" onitemcommand="changerRep" >
<ItemTemplate>
<tr>
<td colspan="2"> <asp:LinkButton CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Valeur").ToString() %>' runat="server">
<img src="./img/folder.gif" alt="*" style="border:0;"/>
<%# DataBinder.Eval(Container.DataItem, "Intitule")%>
</asp:LinkButton>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
les données de ce repeater sont données et mis à jours gràce aux méthodes suivantes :
private ArrayList getRepertoire(string path)
{
ArrayList listeRep = new ArrayList();
System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(path);
if (di.Exists)
{
if (di.Parent != null)
{
listeRep.Add(new Donnees(" .. (retour)", di.Parent.FullName));
}
try
{
foreach (System.IO.DirectoryInfo directory in di.GetDirectories())
{
listeRep.Add(new Donnees(directory.Name, directory.FullName));
}
}
catch (UnauthorizedAccessException) { }
}
return listeRep;
}
protected void changerRep(object source, RepeaterCommandEventArgs e)
{
Repeater2.DataSource = getRepertoire(e.CommandArgument.ToString());
Repeater2.DataBind();
}
Le probleme survient au 9e lien créé par le repeater, avant tout va bien je me promène dans les répertoires sans problèmes mais si je cliques sur le 9e lien ou un apres, il ne passe pas par la méthode changerRep et me réaffiche les répertoires ou j'étais mais que les 8 premiers.
Un exemple ( chaque tiré représente un répertoire)
-rep1
-rep2
-rep4
-rep5
-rep6
-rep7
-rep8
-rep9
si je clique sur le rep1 j'obtiens :
-sousrep1
-sousrep2
là tout va bien
mais si je clique sur le rep9 j'obtiens :
-rep1
-rep2
-rep4
-rep5
-rep6
-rep7
-rep8
là tout va mal :s
merci d'avance pour votre aide.