Vous êtes ici Forums
  |  Connexion
 Forums
HomeHomeForums DNNForums DNNDéveloppementDéveloppement[DNN4] Modifier le comportement du composant dnn:UrlControl[DNN4] Modifier le comportement du composant dnn:UrlControl
Précédente
 
Suivante
Nouveau message
04/09/2009 16:57
 

Bonjour à tous,

J'aimerais que lorsque que j'arrive sur une page ou il y a un UrlControl (qui n'est pas lié à un fichier en particulier), celui ci ait sa liste des fichiers qui pointe vers rien, que son contenu soit blanc.

Car par défaut, il met le premier fichier du répértoire sélectionné dans la liste du dessus, et c'est problèmatique pour moi, car on ne peut pas voir si l'utilisateur a bien saisi un fichier.

Est-ce possible ?

J'ai trouvé son ascx dans \Website\controls\, mais on ne peut rien faire avec ça...

Merci d'avance.

 
Nouveau message
08/09/2009 15:57
 

Bonjour,

Cela fait bien deux ans que le Core team parle de remplacer ce controle qui est plus que bancal ! Si tu es développeur, tu aurais plus vite fait de créer ton propre controle. Pour voir comment il est fait ou le modifier, il faut installer une version de dnn AVEC sources. Pour ne pas perdre la compatibilité ascendante lors d'une mise à jour, je te conseille vivement de créer ton propre controle.

Gilles

 
Nouveau message
08/09/2009 17:32
 

Bonjour Ploum,

Merci pour l'info (pas des plus arrangeantes... ;-) ).

Bonne fin de journée.

 
Nouveau message
08/09/2009 21:48
 

Bonsoir Dacid,

Je n'ai pas essayé de faire cela en particulier, mais j'essaierai d'accèder à la fonction DataBind ou à l'évenement OnDataBind du contrôle afin d'injecter juste avant l'insertion des données un élément "< Sélectionnez un dossier / fichier >" de valeur -1. Comme le contrôle de liste est "embbed" dans le contrôle URLControl, il faudra le "caster" pour y accèder (comme on ferait dans un DataGrid.OnItemDataBound).

Si cela n'est pas possible, il faudra bien entendu recréer le contrôle, en dupliquant le contrôle originel puis en changeant l'espace de nom par exemple pour conserver les possibilités d'upgrade.

Seb

 
Nouveau message
09/09/2009 13:56
 

Bonjour Seb,

Oui, seulement, je n'ai pas accès au code, il est encapsulé dans une DLL (je ne sais même pas laquelle).

Je pense que le seul moyen est de dupliquer le Controle... Dur dur.

Merci à vous.

 
Nouveau message
10/10/2009 02:45
 

Bonjour,

Il te suffit d'installer localement une version source (voir la doc pour les détails). Ton système doit être au minimu XP Pro car IIS est requis, SQL Serveur (toutes versions depuis 2000) et Visual Studio 2005 Standard ou VS 2008 Express AVEC SP1. Cette version est divisée en deux répertoires Library et Website. La librairie contient le fichier de la solution qui te permettra d'accéder au code source. Compte tenu qu'il s'agit d'une librairie, il faut donc disposer d'une version de VS supportant le mode WAP. Quand au dossier Website, il correspond à ce que tu installe avec une version standard de dnn. Comme il s'agit d'une application ASP.NET standard (WSP), tu peux la modifier avec toutes versions de VS 2005 et supérieur. Toutefois les dernières version 5.1.2 et supérieur requière VS 2008 (toutes versions) avec SP1 pour modifier la librairie.

Attention, accéder au source ne signifie PAS qu'il faille le modifier ! C'est même vivement déconseillé, car tu ne pourrais plus bénéficier des futures mises à jour de dnn. A moins d'appliquer à nouveau tes modifs après mise à jour, ce qui est fastidieux.

En revanche, accéder aux sources permet de comprendre comment fonctionne dnn en interne. C'est TRES instructif, à condition d'y consacrer suffisement de temps. Tu pourras ainsi voir comment est fait le contrôle et envisager une solution à ton problème. Ensuite, il te faudra créer un contrôle web standard qui seras utilisé dans ton module. Rien ne t'empêche de réutiliser une partie du code existant. Tu peux aussi en faire une librairie ou un contrôle serveur, tout dépend de tes besoins.

Gilles

 
Nouveau message
23/10/2009 11:16
Réponse Acceptée 

Bonjour Ploum,

En fait, j'ai mis un fichier dans chaque répertoire "(_PAS DE FICHIER.txt". Avec un petit texte qui dit de nous contacter s'ils voient ce message.

Ce fichier arrive en 1ere position.

C'est du bricolage, mais ça va suffire pour le moment.

Merci pour vos conseils.

(PS: La notification ne fonctionne toujours pas, je suis obligé de raffraichir régulièrement pour voir les réponses... Je ne pense pas être le seul)

 
Précédente
 
Suivante
HomeHomeForums DNNForums DNNDéveloppementDéveloppement[DNN4] Modifier le comportement du composant dnn:UrlControl[DNN4] Modifier le comportement du composant dnn:UrlControl