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 :

Label éditable ?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut Label éditable ?
    Bonjour,

    Comment faire un Label éditable à l'exécution ?

    Merci.

  2. #2
    Membre averti
    Inscrit en
    Février 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 20
    Par défaut
    bonjour
    Tu peux expliquer votre besoin !!! la question et très vague

  3. #3
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    J'ai une page affichant des données à imprimer, mais avant de l'imprimer l'utilisateur peut vouloir de saisir des observations dans une zone de la page.
    Je veux ajouter un Label dans lequel il peut saisir ses observations.
    Je ne veux pas faire un textbox, parce que les observations peuvent être dans plusieurs lignes et la barre de défilement ne doivent pas apparaître.

    Est-ce la question est claire ou bien je dois expliquer encore. Merci.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    373
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 373
    Par défaut
    J'ai trouvé le contrôle Ajax: PopupControlExtender qui travaille très bien. Mais dans mon cas il y a un autre problème.

    J'ai un gridview affichant des données, et j'ai ajouté une colonne dans lequel j'ai inséré un Label qui doit recevoir les observations de l'utilisateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="idproduit"
        DataSourceID="sdsBLFacturation" Width="100%">
        <columns>
                        <asp:BoundField DataField="echelle" HeaderText="Echelle" ReadOnly="True" SortExpression="echelle" />
                        <asp:BoundField DataField="designation" HeaderText="Désignation" ReadOnly="True"
                            SortExpression="designation" />
                        <asp:BoundField DataField="qtecommandee" HeaderText="Nombre" ReadOnly="True" SortExpression="qtecommandee" />
                        <asp:BoundField DataField="prixunitaire" HeaderText="Prix unitaire" ReadOnly="True"
                            SortExpression="prixunitaire" />
                        <asp:TemplateField HeaderText="Observations">
                            <ItemTemplate>
                                <asp:Label ID="observations" runat="server" Text="." Width="50px"></asp:Label><br />
                                <asp:Panel ID="Panel1" runat="server" CssClass="popupControl">
                                    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                                        <ContentTemplate>
                                            <asp:TextBox runat="server" ID="textObservations" Text=""></asp:TextBox><br />
                                            &nbsp;<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                                        </ContentTemplate>
                                    </asp:UpdatePanel>
                                </asp:Panel>
                                <br />
                                <ajaxToolkit:PopupControlExtender ID="PopupControlExtender1" runat="server" CommitProperty="value"
                                    CommitScript="e.value += ' - SEND A MEETING REQUEST!';" PopupControlID="Panel1"
                                    Position="Bottom" TargetControlID="observations">
                                </ajaxToolkit:PopupControlExtender>
                            </ItemTemplate>
                        </asp:TemplateField>
                    </columns>
    </asp:GridView>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     protected void Button1_Click(object sender, EventArgs e)
        {
            Label labelObservations = (Label)GridView1.FindControl("observations");
            TextBox textObservations = (TextBox)GridView1.FindControl("textObservations");
     
     
            if (textObservations.Text.Trim() == "")
                {
                    labelObservations.Text = ".";
                }
            else
                {
                    labelObservations.Text = textObservations.Text;
                }
        }
    Voilà l'erreur:

    System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
    Il trouve textObservations null

  5. #5
    Membre Expert
    Avatar de Nicolas Esprit
    Homme Profil pro
    Consultant en technologies
    Inscrit en
    Février 2010
    Messages
    1 467
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 1 467
    Par défaut
    Bonjour,

    Le problème ne vient pas du fait que ton TextBox soit situé dans un UpdatePanel (ou un autre contrôle, peu importe). Le FindControl va rechercher dans les contrôles enfants mais pas dans les niveaux du dessous (pas les petits-enfants, etc...).

    Donc deux solutions : Tu fais un FindControl sur ton UpdatePanel et avec celui ci tu en fait un second sur ton TextBox.

    Ou le mieux : utiliser une fonction FindControl récursive ( pleins d'exemples sur ce forum ou google).

    En espérant t'avoir aidé.

Discussions similaires

  1. Faire un Label éditable
    Par Tod_sd dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/08/2009, 14h09
  2. Faire defiler Texte dans un label
    Par Techsan dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/06/2003, 23h29
  3. [Kylix] Labels du QTreeView tronqués
    Par Mister Nono dans le forum EDI
    Réponses: 3
    Dernier message: 05/11/2002, 19h45
  4. [VB6] Des labels qui réagissent à la souris
    Par murielle dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 24/10/2002, 14h19
  5. scroll dans un label
    Par Pretender dans le forum Composants VCL
    Réponses: 9
    Dernier message: 27/09/2002, 17h06

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