none
custom action & webcontrol RRS feed

  • Question

  • bonjour

    j'ai un custom action affichant un lien vers une page url dans ActionsMenu d'une liste.

    je voudrai savoir si a la place dutiliser ce lien  :

    MenuItemTemplate menu = new MenuItemTemplate();
    menu.Text = "Passeport Formation";
    menu.ClientOnClickNavigateUrl = "Url destination";

    si on peut utiliser un webcontrol style linkbutton qui permettra dexecuter du code en cliquant dessus:

    LinkButton btRepPassFormation = new LinkButton();
    btRepPassFormation.Text = "Passeport Formation";
    btRepPassFormation.Click +=new EventHandler(btRepPassFormation_Click);
    Controls.Add(btRepPassFormation);
    base.CreateChildControls();


    car apres avoir fais un test le control n'apparait pas

    mercu

     


    Marc
    mercredi 16 juin 2010 12:49

Réponses

  • En fait asp.net passe deja par du javascript le __doPostBack est la fonction utiliser par asp.net. Normalement c'est transparent pour le développeur mais dans certains cas il est necessaire de l'appeler soit meme.

    Regarde le code html genere par une page asp.net et tu verras le code javascript :)

    http://www.xefteri.com/articles/show.cfm?id=18


    Xavier VANNESTE http://www.xvanneste.com http://media.xvanneste.com
    • Marqué comme réponse Zombie13100_ jeudi 17 juin 2010 07:57
    mercredi 16 juin 2010 20:42
    Auteur de réponse

Toutes les réponses

  • Bonjour,

    Oui on peut le faire mais il ne faut pas oublier de mettre le control comme safe dans le web.config.

    Example avec une web part:

    http://msdn.microsoft.com/en-us/library/ms581321(office.12).aspx

    :)


    Xavier VANNESTE http://www.xvanneste.com http://media.xvanneste.com
    mercredi 16 juin 2010 13:07
    Auteur de réponse
  • Bonjour, vous pouvez utilisez la définition d'un Custom Action pour EditControlBlock  tel que :

    Elements xmlns="http://schemas.microsoft.com/sharepoint/">

    <CustomAction 

    Id="C670889F-58D7-4beb-9A09-E8133E3A5917" 

    RegistrationType="List"

    RegistrationId="101" 

            Location="EditControlBlock" 

    Sequence="2000" 

    Title="Passeport Formation" 

    Description="Ton description"

           ControlAssembly="PassFormation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=694251f1521298c0"

            ControlClass="PassFormation.CustomActionCreateRep">

    <UrlAction Url="votre URL"/>

    </CustomAction>

    </Elements>

    et tu ajoute ton traitement dans la classe, mais n'oublie pas d'ajouter ton control dans la methode CreateChildControls().

     

    j'espère que ça vous aide.

    mercredi 16 juin 2010 13:23
  • cela marche avec :

    protected override void CreateChildControls()
            {
               MenuItemTemplate menu = new MenuItemTemplate();
               menu.Text = "Passeport Formation";
               menu.Description = "création de dossier formation reservé aux formateurs";
               menu.ClientOnClickNavigateUrl = " votre Url destination";
               Controls.Add(menu);
                base.CreateChildControls();
            }


    cela marche pas avec le linkbutton :


             protected override void CreateChildControls()
            {
               LinkButton btRepPassFormation = new LinkButton();
               btRepPassFormation.Text = "Passeport Formation";
               btRepPassFormation.Click +=new EventHandler(btRepPassFormation_Click);
               Controls.Add(btRepPassFormation);
                base.CreateChildControls();
                
            }


     ma feature:

    <CustomAction
            Id="0FF2B1CE-B3DB-4265-99E3-342B0F90A8D1"
            Location="EditControlBlock"
            Title="Passeport Formation"
            Description="création de dossier formation reservé aux formateurs"
               ControlAssembly="PassFormation, Version=1.0.0.0, Culture=neutral, PublicKeyToken=694251f1521298c0"
            ControlClass="PassFormation.CustomActionCreateRep" >
        </CustomAction>

     

    j'en perds mon latin

     


    Marc
    mercredi 16 juin 2010 14:27
  • Bonjour,

    je pense que ce post repond a votre question:

    http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/c2259839-24c4-4a7e-83e5-3925cdd17c44/


    Xavier VANNESTE http://www.xvanneste.com http://media.xvanneste.com
    mercredi 16 juin 2010 14:41
    Auteur de réponse
  • Bonjour, 

     

    Vous ne pouvez pas, ajouter un Control autre que MenuItemTemplate, sinon il ne sera pas visible. 

    donc vous pouvez ajouter vos actions de l'évènement  "btRepPassFormation_Click" dans l'evenement  onLoad(EventArgs args) du WebControl.

     

    -----------------------

    Ayman Nemri

    mercredi 16 juin 2010 15:55
  • d'accord pour utiliser MenuItemTemplate mais je vois pas comment faire.

    je voudrai executer du code quand l'utilisateur clik sur ma custom action

    MenuItemTemplate me propose uniquement de me rediriger vers une URL

    que dois je faire pour lui dire d'executer du code quand un utilisateur clique sur ma custom action se trouvant dans

    MenuItemTemplate ou ActionsMenu.

    merci



    Marc
    mercredi 16 juin 2010 16:46
  • Dans le post que j'avais mis y avait un exemple en bas:

    http://johanolivier.blogspot.com/2010/01/sharepoint-custom-action-execute-code.html

    :)

     


    Xavier VANNESTE http://www.xvanneste.com http://media.xvanneste.com
    mercredi 16 juin 2010 17:30
    Auteur de réponse
  • merci pour votre aide , mais il y a pas plus simple ?

    faut passer par du javascript ?


    Marc
    mercredi 16 juin 2010 18:17
  • En fait asp.net passe deja par du javascript le __doPostBack est la fonction utiliser par asp.net. Normalement c'est transparent pour le développeur mais dans certains cas il est necessaire de l'appeler soit meme.

    Regarde le code html genere par une page asp.net et tu verras le code javascript :)

    http://www.xefteri.com/articles/show.cfm?id=18


    Xavier VANNESTE http://www.xvanneste.com http://media.xvanneste.com
    • Marqué comme réponse Zombie13100_ jeudi 17 juin 2010 07:57
    mercredi 16 juin 2010 20:42
    Auteur de réponse
  • ouf ca marche , merci a vous tous

    Marc
    jeudi 17 juin 2010 07:58