none
Changer le contenu d un web part RRS feed

  • Question

  • Salut,

    d abord, Je voudrais m execuser, parceque puisque j ai un clavier japonais pour le moment mon text serait sans accent.
    Voila, Je suis en train de developer une web part sur sharepoint 2007. Lors du premier affichage la web part affiche un formulaire a remplir. Apres la saisie des donnees de la part de l utilisateur je voudrais afficher le resultat sur le meme espace occupe par la web part(en gros je voudrais changer son contenue apres la saisie).Est ce que quelqu un a deja fait ca? J ai aucune idee comment je pourrais faire ca. jusqu a la j y arrive...
    Merci pour toute reponse ou idee pouvant m aider a avancer un peu dans mon application...

    mardi 8 décembre 2009 08:51

Toutes les réponses

  • Bonjour,

    La problématique que vous soulevez relève plus d'ASP.net que de SharePoint.
    Ce forum est plus adapté : http://forums.asp.net/

    Normalement, vous avez déjà au moins 3 méthodes dans votre webpart :
    - Vous ajoutez vos controles de saisi dans la méthode CreateChildControls().
    - Vous remplissez peut être le contenu de certains controles dans la méthode OnLoad().
    - Vous devez aussi avoir un event handler sur le bouton OK de votre formulaire

    Une solution est de mettre tous les controles de saisis dans un panel (panel formulaire), et d'avoir un autre panel qui affiche le résultat (panel résultat).
    Dans le OnLoad, vous spécifiez que le panel Formulaire est visible, alors que le panel résultat ne l'est pas.
    Dans l'event handler du bouton OK, vous spécifiez que le panel formulaire est invisible et que le panel résultat est visible.

    Donc, au chargement normal de la webpart, le formulaire s'affichera. Lors du Postback (click bouton), le panel résultat s'affichera car les évènements (click boutons...) arrivent APRES le OnLoad

    Je vous conseille aussi d'étudier le cycle de vie des pages ASP.net :
    http://msdn.microsoft.com/fr-fr/library/ms178472(VS.80).aspx

    Ca répond à votre question ?
    Sylvain
    jeudi 17 décembre 2009 09:36
    Auteur de réponse
  • Bonjour,

    Je tiens d abord a vous remercier de votre reponse. Desole mais je suis pas tres expert en ASP.Net puisque je viens du millieu Java mais en tout cas votre Idee m a inspire pour avancer un peu les choses et a avoir une meilleur idee de comment ca marche les Webparts. Cela dit, j arrive toujours pas a changer le contenu de ma webpart. J ai fait comme ce que vous aviez dit. Deux panel avec deux contenues different et a chaque fois l une deux est visible. Tout ce que j ai a la fin c une webpart vide avec rien dedans(ni le premier ni le deuxieme panel). Je cree d abord les controls dans CreateChildControl. Apres avoir creer les deux panels j leurs ajoute les autre control(boutons, textfield...etc). A la fin j ajoute les deux panel au Controls de la webpart.

    Dites moi svp si j ai pas bien compris quelquechose de votre explication.
    Merci de consacrer un peu de votre temps pour me repondre.
    mardi 22 décembre 2009 05:28
  • Bonjour,

    il est possible que le problème vienne du ViewState. Si le ViewState est activé et que lors du premier affichage un de vos panels est Visible = false, alors celui-ci ne sera pas rechargé au postback suivant. Cela vient du fait qu'avoir Visible = false revient à supprimer un contrôle de la structure de la page (ou de son contrôle parent).

    Dans le constructeur de la web part, ou dans la méthode OnInit(), vous pouvez mettre cette ligne de code qui devrait désactiver la persistance des valeurs de propriétés pour tous vos contrôles.

    this.EnableViewState = false;
    Attention cela provoque quelques changements de comportement puisque votre web part n'aura plus de "mémoire". Par exemple, les sources de données doivent être re-bindées à chaque retour serveur.

    Est-ce que cela corrige le problème ?
    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses qui correspondent à votre problème afin qu'il apparaisse comme résolu.
    mercredi 23 décembre 2009 07:13