IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Modifier une valeur en BO via un object data source et des user controls


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut Modifier une valeur en BO via un object data source et des user controls
    bonjour,

    mon problème est le suivant :

    Dans une page web utilisant des user controls (imbriqués cad qu'un user est composé d'autre user control ...) et un object data source pour récupérer les infos à afficher, je souhaite en cliquant sur un linkbutton d'un user control modifier la valeur d'une donnée.

    Pour faire sa, dans le code behind de la page, au Page_load() je remonte à travers les user controls vers le linkbutton en utilisant des findControl().

    Puis en utilisant un délégué sur l'évenement click de mon linkbutton j'essaie de modifier la valeur dont je vous ai parlé au début mais sa ne fonctionne pas.

    voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    try
            {
                LinkButton btnDelete = (LinkButton)s.FindControl("fvPersonneMorale").FindControl("pnlSociete").FindControl("EditAdresseSynthese").FindControl("pnlItem")
                    .FindControl("fvCoordonneeAdresse").FindControl("pnlItem").FindControl("EditButtons1").FindControl("btnDelete");
     
                btnDelete.Click += new EventHandler (aaa);
            }
            catch (Exception)
            {
            }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void aaa(object sender, EventArgs e)
        {
            MiniSite ms = MiniSiteService.SelectMyMiniSite();
            ms.BaseActive = false;
        }
    Quand je suis en mode debug et que j'arrive à la méthode aaa j'ai systématiquemen le message d'erreur suivant qui s'affiche : "There is no source code available for the current location."

    J'ai vraiment tout essayé mais je ne parvient pas à résoudre le problème, alors si quelqu'un pouvait m'aider à le résoudre ce serait vraiment sympat.

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Utilise des propriétés plutôt que des findControl:

    http://lutecefalco.developpez.com/tu...-page-asp-net/

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Une telle utilisation de findcontrol me suprend fort.

    L'emploie d'un findcontrol n'a de sens que lorsque l'on fait une recherche dans un namingcontainer "indépendant" (je m'exprime peut-être mal, j'espère que non).
    En parlant de namingcontainer indépendant je pense à des groupes de contrôles répétés (dans un Repeater, une GridView, ....).
    Il s'agit donc à des groupes indexés dans un ensemble et un accès à un élément précis resemblerait alors plutôt à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Literal literal1 = (Literal)((GridView)repeater1.Items[4].FindControl("gridview1")).Items[14].FindControl("literal1")
    Enfin soit, je pense que ce qu'il te faudrait surtout c'est utiliser la propriété OnClick dans le code aspx (pour peu que ton LinkButton y soit présent et non rajouté dynamiquement dans ton code behind).

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Merci pour vos réponses mais le problème ne vient pas du fait que je n'arrive pas à accéder à mon controle (le linkbutton) ni à l'évènement click mais le problème est que le code que j'ai placé dans la méthode aaa() qui est appelée quand l'évenement click est levé est complètement ignoré j'ai le message d'erreur : "There is no source code available for the current location" qui s'affiche quand je suis en mode debug.

    Sans le mode debug il n'y a pas de message d'erreur mais il n'y a pas le résultat souhaité.

    En résumé la fonction aaa() est appelée c'est sûre mais le code placé à l'interieur est ignoré (pourquoi ?).

    Please ne me laissez pas tombé et encore merci.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Je me suis rendu compte que le code que j'ai placé dans la méthode aaa() cad :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MiniSite ms = MiniSiteService.SelectMyMiniSite();
            ms.BaseActive = false;
    ne pouvait pas être placé n'importe où sous peine d'être ignoré[/U]. Par exemple il ne pas être placé dans le Page_Init.


    Il faut savoir que MiniSite et MiniSiteService son des objet utilisé pour le ObjectDataSource.

    Merci par avance de votre aide.

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 85
    Points : 39
    Points
    39
    Par défaut
    Sa y est le problème est résolu, j'avait tout simplement oublié de mettre à jour la base avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MiniSiteService.UpdateMiniSite(ms);
    Merci à tout ceux qui ont bien voulu m'aider

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Modifier une valeur dans un insert sql via php
    Par Dendrite dans le forum Langage
    Réponses: 2
    Dernier message: 21/05/2010, 09h16
  2. Modifier une valeur d'option PHP via .htaccess
    Par Helfima dans le forum Apache
    Réponses: 3
    Dernier message: 10/12/2006, 20h45
  3. Réponses: 4
    Dernier message: 29/03/2006, 08h22
  4. modifier une valeur dans une hash
    Par chaabane dans le forum Langage
    Réponses: 1
    Dernier message: 17/03/2006, 10h59
  5. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo