J'utilise un contrôle Ajax jQuery de ce site http://abeautifulsite.net/2008/03/jquery-file-tree/
Tout fonctionne. J'ai essayé de poser une question d'assistance mais je n'ai pas eu de réponse, je pense que quelqu'un ici peut peut-être m'éclairer sur la situation.
En gros, ce que j'essaie de faire, c'est que sur une sélection de fichier, je lance une action qui renvoie un JsonResult, qui donne plus de détails sur le fichier, puis je l'affiche à l'écran dans un conteneur. Pendant que je débogue, la méthode est exécutée et renvoie les données correctes. Après le retour de l'appel ajax, j'obtiens une erreur dans firebug disant que la limite de récursion a été dépassée. Je ne sais pas trop comment contourner ce problème... Je pensais pouvoir utiliser le callback de la méthode fileTree(options, callback) fournie, mais il n'est pas déclenché lors de la sélection du fichier, seulement lors de l'initialisation de l'arbre des fichiers. Une idée ?
Voici ce que j'ai fait via JavaScript
function initFileTree() {
$('#fileTree').fileTree({ root: '/', script: '/Scripts/filetree/jqueryFileTree.aspx', multiFolder: false, expandEasing: 'easeOutBounce', collapseEasing: 'easeOutBounce' }, function(file) {
getFileDetails(file);
});
}
function getFileDetails(file) {
// alert(file);
$.getJSON('/Files.mvc/GetFileDetails', { Data: file }, function(data) {
$('#fileDetail').html('<h6>Selected File: ' + data.Length + '</h6>');
}, 'json');
}
Voici mon action qui prend les données et renvoie un résultat JsonResult
public virtual JsonResult GetFileDetails(string data)
{
string pageMessage = null;
FileInfo fileInfo = null;
try
{
fileInfo = new FileInfo(data);
}
catch (Exception e)
{
pageMessage = e.Message;
}
return Json(fileInfo);
}