Bonjour.
J'ai une page ASP.NET qui consomme un WebService.
Le WebService propose entre-autre 2 méthodes :
- GetDir(folder) : retourne le contenu (folders et files) de
'folder', - GetData(file) : retourne des informations concernant 'file'.
Au niveau de la page ASP.NET, l'utilisateur aura un menu listant les
répertoires et un cadre contenant les informations des fichiers
contenus dans le répertoire courant.
Le problème est qu'à chaque appel de GetDir/GetData, la page ASP devra
être être de nouveau chargée pour afficher le nouveau contenu... bref,
pas très adapté (note : si c'était pour moi, je m'en satisferais :)).
Je me demandais donc si je n'implémentais pas une nouvelle WebMethode
en utilisant GetDir et GetData afin de récupérer d'un seul jet
l'arborescence entière des folders et de leurs contenus. A coup
récursif, ça devrait être bon.
Le *vrai* problème maintenant est de créer un JavaScript à partir du
résultat de cette WebMethode qui retournerait un fichier XML. Je
verrai grosso-modo le fichier comme suit :
<folder name="/">
<folder name="rep1">
<folder name="subrep1"/>
<file name="subfile"/>
</folder>
<folder name="rep2"/>
...
<file name="file1"/>
...
</folder>
Voilà, en gros j'obtiendrai un tel fichier côté WebService. Il
suffirait ensuite de l'envoyer à la page ASP sous forme d'objet qui
en ferait un JavaScript. Ainsi, on n'aurait plus de chargement de
page et d'appel de WebService à chaque navigation dans l'arborescence.
J'ai simplifié le problème mais globalement, c'est ce que je
souhaiterais faire. Des conseils ? suggestions ?
Comment faire un tel JavaScript (note : je ne connais pas du tout le
monde du JavaScript :) ?
Merci d'avance.
NB : Je ne pourrais pas voir les retours ce week-end, en espèrant
avoir des indications Lundi. Bon week-end.
Bonjour.
J'ai une page ASP.NET qui consomme un WebService.
Le WebService propose entre-autre 2 méthodes :
- GetDir(folder) : retourne le contenu (folders et files) de
'folder', - GetData(file) : retourne des informations concernant 'file'.
Au niveau de la page ASP.NET, l'utilisateur aura un menu listant les
répertoires et un cadre contenant les informations des fichiers
contenus dans le répertoire courant.
Le problème est qu'à chaque appel de GetDir/GetData, la page ASP devra
être être de nouveau chargée pour afficher le nouveau contenu... bref,
pas très adapté (note : si c'était pour moi, je m'en satisferais :)).
Je me demandais donc si je n'implémentais pas une nouvelle WebMethode
en utilisant GetDir et GetData afin de récupérer d'un seul jet
l'arborescence entière des folders et de leurs contenus. A coup
récursif, ça devrait être bon.
Le *vrai* problème maintenant est de créer un JavaScript à partir du
résultat de cette WebMethode qui retournerait un fichier XML. Je
verrai grosso-modo le fichier comme suit :
<folder name="/">
<folder name="rep1">
<folder name="subrep1"/>
<file name="subfile"/>
</folder>
<folder name="rep2"/>
...
<file name="file1"/>
...
</folder>
Voilà, en gros j'obtiendrai un tel fichier côté WebService. Il
suffirait ensuite de l'envoyer à la page ASP sous forme d'objet qui
en ferait un JavaScript. Ainsi, on n'aurait plus de chargement de
page et d'appel de WebService à chaque navigation dans l'arborescence.
J'ai simplifié le problème mais globalement, c'est ce que je
souhaiterais faire. Des conseils ? suggestions ?
Comment faire un tel JavaScript (note : je ne connais pas du tout le
monde du JavaScript :) ?
Merci d'avance.
NB : Je ne pourrais pas voir les retours ce week-end, en espèrant
avoir des indications Lundi. Bon week-end.
Bonjour.
J'ai une page ASP.NET qui consomme un WebService.
Le WebService propose entre-autre 2 méthodes :
- GetDir(folder) : retourne le contenu (folders et files) de
'folder', - GetData(file) : retourne des informations concernant 'file'.
Au niveau de la page ASP.NET, l'utilisateur aura un menu listant les
répertoires et un cadre contenant les informations des fichiers
contenus dans le répertoire courant.
Le problème est qu'à chaque appel de GetDir/GetData, la page ASP devra
être être de nouveau chargée pour afficher le nouveau contenu... bref,
pas très adapté (note : si c'était pour moi, je m'en satisferais :)).
Je me demandais donc si je n'implémentais pas une nouvelle WebMethode
en utilisant GetDir et GetData afin de récupérer d'un seul jet
l'arborescence entière des folders et de leurs contenus. A coup
récursif, ça devrait être bon.
Le *vrai* problème maintenant est de créer un JavaScript à partir du
résultat de cette WebMethode qui retournerait un fichier XML. Je
verrai grosso-modo le fichier comme suit :
<folder name="/">
<folder name="rep1">
<folder name="subrep1"/>
<file name="subfile"/>
</folder>
<folder name="rep2"/>
...
<file name="file1"/>
...
</folder>
Voilà, en gros j'obtiendrai un tel fichier côté WebService. Il
suffirait ensuite de l'envoyer à la page ASP sous forme d'objet qui
en ferait un JavaScript. Ainsi, on n'aurait plus de chargement de
page et d'appel de WebService à chaque navigation dans l'arborescence.
J'ai simplifié le problème mais globalement, c'est ce que je
souhaiterais faire. Des conseils ? suggestions ?
Comment faire un tel JavaScript (note : je ne connais pas du tout le
monde du JavaScript :) ?
Merci d'avance.
NB : Je ne pourrais pas voir les retours ce week-end, en espèrant
avoir des indications Lundi. Bon week-end.
Tu peux trouver quelques exemple en recherchant "WebService behavior" et
"Accessing Web Services From DHTML".
Le WebService behavior te permet de récupérer, grâce à la propriété "raw",
le retour XML de la fonction appelée. Ceci comprend toute l'enveloppe SOAP
mais en appliquant une feuille de style XSL tu dois pouvoir transformer ce
qui t'intéresse en HTML et l'intégrer directement dans ton document.
Inconvénient : cela ne sera accessible je pense qu'avec IE, cet inconvénient
présente l'avantage que tu peux programmer en VBScript.
Après avoir posté mon premier message j'ai pensé que dans le cas où
j'utilise le treeview, je le peuple avec des données locales. Ce qui n'est
peut-être pas ton cas ?
Tu peux trouver quelques exemple en recherchant "WebService behavior" et
"Accessing Web Services From DHTML".
Le WebService behavior te permet de récupérer, grâce à la propriété "raw",
le retour XML de la fonction appelée. Ceci comprend toute l'enveloppe SOAP
mais en appliquant une feuille de style XSL tu dois pouvoir transformer ce
qui t'intéresse en HTML et l'intégrer directement dans ton document.
Inconvénient : cela ne sera accessible je pense qu'avec IE, cet inconvénient
présente l'avantage que tu peux programmer en VBScript.
Après avoir posté mon premier message j'ai pensé que dans le cas où
j'utilise le treeview, je le peuple avec des données locales. Ce qui n'est
peut-être pas ton cas ?
Tu peux trouver quelques exemple en recherchant "WebService behavior" et
"Accessing Web Services From DHTML".
Le WebService behavior te permet de récupérer, grâce à la propriété "raw",
le retour XML de la fonction appelée. Ceci comprend toute l'enveloppe SOAP
mais en appliquant une feuille de style XSL tu dois pouvoir transformer ce
qui t'intéresse en HTML et l'intégrer directement dans ton document.
Inconvénient : cela ne sera accessible je pense qu'avec IE, cet inconvénient
présente l'avantage que tu peux programmer en VBScript.
Après avoir posté mon premier message j'ai pensé que dans le cas où
j'utilise le treeview, je le peuple avec des données locales. Ce qui n'est
peut-être pas ton cas ?
J'utiliserais un control treeview alimenté côté serveur par des appels
récursifs à GetDir.
Chaque noeud du Treeview serait un lien hypertexte vers une seconde page
aspx prenant en paramètres les infos nécessaires à la fonction GetData,
cette seconde page serait bien sûr ouverte dans ton iframe (donc pas de
rechargement du treeview.
J'ai testé ceci dans un autre contexte (BDD avec une structure
hiérarchique), cela fonctionne très bien.
J'utiliserais un control treeview alimenté côté serveur par des appels
récursifs à GetDir.
Chaque noeud du Treeview serait un lien hypertexte vers une seconde page
aspx prenant en paramètres les infos nécessaires à la fonction GetData,
cette seconde page serait bien sûr ouverte dans ton iframe (donc pas de
rechargement du treeview.
J'ai testé ceci dans un autre contexte (BDD avec une structure
hiérarchique), cela fonctionne très bien.
J'utiliserais un control treeview alimenté côté serveur par des appels
récursifs à GetDir.
Chaque noeud du Treeview serait un lien hypertexte vers une seconde page
aspx prenant en paramètres les infos nécessaires à la fonction GetData,
cette seconde page serait bien sûr ouverte dans ton iframe (donc pas de
rechargement du treeview.
J'ai testé ceci dans un autre contexte (BDD avec une structure
hiérarchique), cela fonctionne très bien.
Fred wrote:[...]
Merci pour ta réponse.Tu peux trouver quelques exemple en recherchant "WebService
behavior" et "Accessing Web Services From DHTML".
Le WebService behavior te permet de récupérer, grâce à la propriété
"raw", le retour XML de la fonction appelée. Ceci comprend toute
l'enveloppe SOAP mais en appliquant une feuille de style XSL tu dois
pouvoir transformer ce qui t'intéresse en HTML et l'intégrer
directement dans ton document. Inconvénient : cela ne sera
accessible je pense qu'avec IE, cet inconvénient présente l'avantage
que tu peux programmer en VBScript.
Il ne faut pas que je me cantonne qu'à IE...
Après avoir posté mon premier message j'ai pensé que dans le cas où
j'utilise le treeview, je le peuple avec des données locales. Ce qui
n'est peut-être pas ton cas ?
C'est-à-dire ?
Les répertoires et fichiers à afficher sont ceux du serveur sur lequel
sont stockés ces documents.
Et j'ai encore une contrainte en plus, possibilité d'ajouter, effacer,
renommer, etc des fichiers/files...
Ca va être une vraie galère...
Fred wrote:
[...]
Merci pour ta réponse.
Tu peux trouver quelques exemple en recherchant "WebService
behavior" et "Accessing Web Services From DHTML".
Le WebService behavior te permet de récupérer, grâce à la propriété
"raw", le retour XML de la fonction appelée. Ceci comprend toute
l'enveloppe SOAP mais en appliquant une feuille de style XSL tu dois
pouvoir transformer ce qui t'intéresse en HTML et l'intégrer
directement dans ton document. Inconvénient : cela ne sera
accessible je pense qu'avec IE, cet inconvénient présente l'avantage
que tu peux programmer en VBScript.
Il ne faut pas que je me cantonne qu'à IE...
Après avoir posté mon premier message j'ai pensé que dans le cas où
j'utilise le treeview, je le peuple avec des données locales. Ce qui
n'est peut-être pas ton cas ?
C'est-à-dire ?
Les répertoires et fichiers à afficher sont ceux du serveur sur lequel
sont stockés ces documents.
Et j'ai encore une contrainte en plus, possibilité d'ajouter, effacer,
renommer, etc des fichiers/files...
Ca va être une vraie galère...
Fred wrote:[...]
Merci pour ta réponse.Tu peux trouver quelques exemple en recherchant "WebService
behavior" et "Accessing Web Services From DHTML".
Le WebService behavior te permet de récupérer, grâce à la propriété
"raw", le retour XML de la fonction appelée. Ceci comprend toute
l'enveloppe SOAP mais en appliquant une feuille de style XSL tu dois
pouvoir transformer ce qui t'intéresse en HTML et l'intégrer
directement dans ton document. Inconvénient : cela ne sera
accessible je pense qu'avec IE, cet inconvénient présente l'avantage
que tu peux programmer en VBScript.
Il ne faut pas que je me cantonne qu'à IE...
Après avoir posté mon premier message j'ai pensé que dans le cas où
j'utilise le treeview, je le peuple avec des données locales. Ce qui
n'est peut-être pas ton cas ?
C'est-à-dire ?
Les répertoires et fichiers à afficher sont ceux du serveur sur lequel
sont stockés ces documents.
Et j'ai encore une contrainte en plus, possibilité d'ajouter, effacer,
renommer, etc des fichiers/files...
Ca va être une vraie galère...
Je crains que toutes mes suggestions ne tombent à l'eau. Il me semble que
seul IE comprends l'attribut behavior dans une feuille de style CSS (je n'ai
pas trouvé cet attribut dans la norme CSS2)
Le treeview dont je te parlais n'est pas inclu dans Studio .NET, il est en
téléchargement chez MS, mais sous le nom IE WebControls, donc toujours le
même problème par rapport à d'autres navigateurs.
Oui, mais est-ce le serveur qui héberge l'application ?
Ta contrainte de pouvoir ajouter, effacer ou renommer des fichiers et
répertoires rend le problème beaucoup plus complexe si tu n'acceptes pas la
réactualisation de ton arborescence.
Pourquoi ne pas faire une page de navigation plus simple (sans arborescence)
à la façon de l'explorer Windows.
Quand tu cliques sur un dossier, une nouvelle page s'affiche avec son
contenu. Et tu prévois un lien pour remonter.
Je sais que ce n'est pas ton but initial, mais vu la difficulté de gérer un
treeview dynamiquement et pour n'importe quel navigateur, je ne vois pas de
solution 'simple'.
Si tu acceptes les rafraîchissement de l'arborescence, alors le contrôle XML
de asp .NET serait un bon compromis. Tu génères ton fichier sur le serveur
comme tu le supposais et tu lui appliques une feuille de style pour la mise
en forme, ton fichier XML se transformerait par exemple en une imbrication
de DIVs. Côté client, tu peux replier ou déplier ton arborescence assez
simplement en jouant sur les attributs visibility. Du coup, cela nécessite
de se plonger dans le XSL.
Dans le cas du contrôle XML, le résultat serait indépendant du navigateur
puisque c'est toi qui génère le HTML par ta feuille de style.
Ton problème n'a pas suscité beaucoup de réponses. J'aurais aimé avoir
l'avis de spécialistes. Je t'ai donné des solutions que j'avais appliquées
mais je ne suis pas sûr que de meilleures méthodes n'existent pas.
Je crains que toutes mes suggestions ne tombent à l'eau. Il me semble que
seul IE comprends l'attribut behavior dans une feuille de style CSS (je n'ai
pas trouvé cet attribut dans la norme CSS2)
Le treeview dont je te parlais n'est pas inclu dans Studio .NET, il est en
téléchargement chez MS, mais sous le nom IE WebControls, donc toujours le
même problème par rapport à d'autres navigateurs.
Oui, mais est-ce le serveur qui héberge l'application ?
Ta contrainte de pouvoir ajouter, effacer ou renommer des fichiers et
répertoires rend le problème beaucoup plus complexe si tu n'acceptes pas la
réactualisation de ton arborescence.
Pourquoi ne pas faire une page de navigation plus simple (sans arborescence)
à la façon de l'explorer Windows.
Quand tu cliques sur un dossier, une nouvelle page s'affiche avec son
contenu. Et tu prévois un lien pour remonter.
Je sais que ce n'est pas ton but initial, mais vu la difficulté de gérer un
treeview dynamiquement et pour n'importe quel navigateur, je ne vois pas de
solution 'simple'.
Si tu acceptes les rafraîchissement de l'arborescence, alors le contrôle XML
de asp .NET serait un bon compromis. Tu génères ton fichier sur le serveur
comme tu le supposais et tu lui appliques une feuille de style pour la mise
en forme, ton fichier XML se transformerait par exemple en une imbrication
de DIVs. Côté client, tu peux replier ou déplier ton arborescence assez
simplement en jouant sur les attributs visibility. Du coup, cela nécessite
de se plonger dans le XSL.
Dans le cas du contrôle XML, le résultat serait indépendant du navigateur
puisque c'est toi qui génère le HTML par ta feuille de style.
Ton problème n'a pas suscité beaucoup de réponses. J'aurais aimé avoir
l'avis de spécialistes. Je t'ai donné des solutions que j'avais appliquées
mais je ne suis pas sûr que de meilleures méthodes n'existent pas.
Je crains que toutes mes suggestions ne tombent à l'eau. Il me semble que
seul IE comprends l'attribut behavior dans une feuille de style CSS (je n'ai
pas trouvé cet attribut dans la norme CSS2)
Le treeview dont je te parlais n'est pas inclu dans Studio .NET, il est en
téléchargement chez MS, mais sous le nom IE WebControls, donc toujours le
même problème par rapport à d'autres navigateurs.
Oui, mais est-ce le serveur qui héberge l'application ?
Ta contrainte de pouvoir ajouter, effacer ou renommer des fichiers et
répertoires rend le problème beaucoup plus complexe si tu n'acceptes pas la
réactualisation de ton arborescence.
Pourquoi ne pas faire une page de navigation plus simple (sans arborescence)
à la façon de l'explorer Windows.
Quand tu cliques sur un dossier, une nouvelle page s'affiche avec son
contenu. Et tu prévois un lien pour remonter.
Je sais que ce n'est pas ton but initial, mais vu la difficulté de gérer un
treeview dynamiquement et pour n'importe quel navigateur, je ne vois pas de
solution 'simple'.
Si tu acceptes les rafraîchissement de l'arborescence, alors le contrôle XML
de asp .NET serait un bon compromis. Tu génères ton fichier sur le serveur
comme tu le supposais et tu lui appliques une feuille de style pour la mise
en forme, ton fichier XML se transformerait par exemple en une imbrication
de DIVs. Côté client, tu peux replier ou déplier ton arborescence assez
simplement en jouant sur les attributs visibility. Du coup, cela nécessite
de se plonger dans le XSL.
Dans le cas du contrôle XML, le résultat serait indépendant du navigateur
puisque c'est toi qui génère le HTML par ta feuille de style.
Ton problème n'a pas suscité beaucoup de réponses. J'aurais aimé avoir
l'avis de spécialistes. Je t'ai donné des solutions que j'avais appliquées
mais je ne suis pas sûr que de meilleures méthodes n'existent pas.
Fred wrote:
> Oui, mais est-ce le serveur qui héberge l'application ?
Oui.
> Ta contrainte de pouvoir ajouter, effacer ou renommer des fichiers et
> répertoires rend le problème beaucoup plus complexe si tu n'acceptes pas
> réactualisation de ton arborescence.
Dans le cas de la modification de l'arborescence, je devrai reconsommer
le WS, c'est sûr (dans le cas où je veux *vraiment* savoir si la
modification a été apportée...).
> de asp .NET serait un bon compromis. Tu génères ton fichier sur le
> comme tu le supposais et tu lui appliques une feuille de style pour la
> en forme, ton fichier XML se transformerait par exemple en une
> de DIVs. Côté client, tu peux replier ou déplier ton arborescence assez
> simplement en jouant sur les attributs visibility. Du coup, cela
> de se plonger dans le XSL.
J'avais déjà fait qqchose de ce genre il y a plusieurs mois... et je
n'ai plus la source :'(
> Dans le cas du contrôle XML, le résultat serait indépendant du
> puisque c'est toi qui génère le HTML par ta feuille de style.
Finalement, la page ASP.NET (si je passe par un GetDir récursif) ne
recoit pas une string-XML mais un objet représentant l'arborescence
entière. D'un autre coté, j peux générer du XML au lieu de l'objet, ce
n'est pas un problème.
Je vais voir ce que je peux faire avec une transformation XSL, je
connais pas.
Fred wrote:
> Oui, mais est-ce le serveur qui héberge l'application ?
Oui.
> Ta contrainte de pouvoir ajouter, effacer ou renommer des fichiers et
> répertoires rend le problème beaucoup plus complexe si tu n'acceptes pas
> réactualisation de ton arborescence.
Dans le cas de la modification de l'arborescence, je devrai reconsommer
le WS, c'est sûr (dans le cas où je veux *vraiment* savoir si la
modification a été apportée...).
> de asp .NET serait un bon compromis. Tu génères ton fichier sur le
> comme tu le supposais et tu lui appliques une feuille de style pour la
> en forme, ton fichier XML se transformerait par exemple en une
> de DIVs. Côté client, tu peux replier ou déplier ton arborescence assez
> simplement en jouant sur les attributs visibility. Du coup, cela
> de se plonger dans le XSL.
J'avais déjà fait qqchose de ce genre il y a plusieurs mois... et je
n'ai plus la source :'(
> Dans le cas du contrôle XML, le résultat serait indépendant du
> puisque c'est toi qui génère le HTML par ta feuille de style.
Finalement, la page ASP.NET (si je passe par un GetDir récursif) ne
recoit pas une string-XML mais un objet représentant l'arborescence
entière. D'un autre coté, j peux générer du XML au lieu de l'objet, ce
n'est pas un problème.
Je vais voir ce que je peux faire avec une transformation XSL, je
connais pas.
Fred wrote:
> Oui, mais est-ce le serveur qui héberge l'application ?
Oui.
> Ta contrainte de pouvoir ajouter, effacer ou renommer des fichiers et
> répertoires rend le problème beaucoup plus complexe si tu n'acceptes pas
> réactualisation de ton arborescence.
Dans le cas de la modification de l'arborescence, je devrai reconsommer
le WS, c'est sûr (dans le cas où je veux *vraiment* savoir si la
modification a été apportée...).
> de asp .NET serait un bon compromis. Tu génères ton fichier sur le
> comme tu le supposais et tu lui appliques une feuille de style pour la
> en forme, ton fichier XML se transformerait par exemple en une
> de DIVs. Côté client, tu peux replier ou déplier ton arborescence assez
> simplement en jouant sur les attributs visibility. Du coup, cela
> de se plonger dans le XSL.
J'avais déjà fait qqchose de ce genre il y a plusieurs mois... et je
n'ai plus la source :'(
> Dans le cas du contrôle XML, le résultat serait indépendant du
> puisque c'est toi qui génère le HTML par ta feuille de style.
Finalement, la page ASP.NET (si je passe par un GetDir récursif) ne
recoit pas une string-XML mais un objet représentant l'arborescence
entière. D'un autre coté, j peux générer du XML au lieu de l'objet, ce
n'est pas un problème.
Je vais voir ce que je peux faire avec une transformation XSL, je
connais pas.
Et il y a un autre problème (qui ne se pose peut-être pas dans ton cas) :
que se passe-t-il en cas d'accès simultané de plusieurs utilisateurs ?
En fait, je voulais te suggérer le news scripting dans mon dernier post et
j'ai oublié. Là bas tu trouveras des pointures en javascript. Pour ce qui
est de l'exemple cité, cela se traduit par un événement onclick sur tes
objets du style :
Mais, bon, si tu n'a plus de treeview cela perd de son intérêt.
Et il y a un autre problème (qui ne se pose peut-être pas dans ton cas) :
que se passe-t-il en cas d'accès simultané de plusieurs utilisateurs ?
En fait, je voulais te suggérer le news scripting dans mon dernier post et
j'ai oublié. Là bas tu trouveras des pointures en javascript. Pour ce qui
est de l'exemple cité, cela se traduit par un événement onclick sur tes
objets du style :
Mais, bon, si tu n'a plus de treeview cela perd de son intérêt.
Et il y a un autre problème (qui ne se pose peut-être pas dans ton cas) :
que se passe-t-il en cas d'accès simultané de plusieurs utilisateurs ?
En fait, je voulais te suggérer le news scripting dans mon dernier post et
j'ai oublié. Là bas tu trouveras des pointures en javascript. Pour ce qui
est de l'exemple cité, cela se traduit par un événement onclick sur tes
objets du style :
Mais, bon, si tu n'a plus de treeview cela perd de son intérêt.