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

C# Discussion :

Problème affichage donnée dans Tooltip et désactivation filtre


Sujet :

C#

  1. #1
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut Problème affichage donnée dans Tooltip et désactivation filtre
    Bonjour,

    Je travaille en ce moment sur le fait d'afficher un tooltip en survolant la colonne name de mon radgrid. Et je voudrais afficher dans ce tooltip le nom complet du projet survolé.

    Je pense avoir trouvé le bon code, cependant lorsque j'essaie d'y faire afficher la bonne valeur, je reçois une erreur me disant que mon code fait référence à un objet qui n'est pas instancié.

    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
    31
    protected void gridProject_ItemCreated(object sender, Telerik.Web.UI.GridItemEventArgs e)
        {
    
            if (e.Item is GridHeaderItem)
            {
                GridHeaderItem headerItem = e.Item as GridHeaderItem;
    
                foreach (GridColumn column in gridProject.MasterTableView.RenderColumns)
                {
                    if (column is GridBoundColumn)
                    {
                        if the sorting feature of the grid is enabled
                        (headerItem[column.UniqueName].Controls[0] as LinkButton).ToolTip = column.UniqueName;
    
                        headerItem[column.UniqueName].ToolTip = column.UniqueName;
                    }
                }
            }
            if (e.Item is GridDataItem)
            {
                GridDataItem gridItem = e.Item as GridDataItem;
                foreach (GridColumn column in gridProject.MasterTableView.RenderColumns)
                {
                    if (column is GridBoundColumn)
                    {
                        gridItem[column.UniqueName].ToolTip = gridItem.OwnerTableView.DataKeyValues[gridItem.ItemIndex]["projet_id"].ToString();
                            
                    }
                }
            }
      }
    => ce code fonctionne très bien avec le paramètre "projet_id", mais quand j'essaie avec "projet_name", cela ne fonctionne plus du tout et il me met comme erreur :
    "System.NullReferenceException: Object reference not set to an instance of an object"
    Car je veux qu'il donne le nom et non l'id du projet.

    Puis il y a aussi un autre problème, auquel je pense aussi avoir trouvé la solution, mais je n'arrive pas à l'appliquer...

    Au dessus de mon radgrid, se trouve 3 petits liens permettant de filtrer les données se trouvant dans le radgrid. Cependant j'aimerais que lorsque l'on clique un autre filtre, j'aimerai que le premier se désactive.

    Voici mon code pour l'un de mes lien/bouton de filtrage.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    protected void btnFiltreNom_Click(object sender, EventArgs e)
        {
            //BindData();
            //gridProject.Rebind();
            //Page_Load(sender,e);
            this.IsClickedNomAsc = true;
            this.IsClickedDateModificationAsc = false;
            this.IsClickedDateCreationAsc = false;
     
     
     
            if (btnFilterNom.Text == "Z->A")
            {
                this._nomAsc = false;
                btnFilterNom.Text = "A->Z";
                btnFilterNom.ForeColor = System.Drawing.Color.RoyalBlue;
            }
            else
            {
                this._nomAsc = true;
                btnFilterNom.Text = "Z->A";
                btnFilterNom.ForeColor = System.Drawing.Color.Violet;
                //this._dateCreationAsc = false;
                //this._dateModificationAsc = false;
                //btnFilterDTC.Visible = false;
                //btnFilterDTM.Visible = false;
            }
            this.FilterProjects();
            this.IsClickedNomAsc = false;
     
            /**if (IsClickedDateCreationAsc = true) 
                {
                    this._nomAsc = false;
                    this.IsClickedNomAsc = false;
                    this._dateModificationAsc = false;
                    this.IsClickedDateModificationAsc = false;
                    this.OnUpdated(this.GetSelectProject());
                }
     
            if (IsClickedDateModificationAsc = true)
                {
                    this._nomAsc = false;
                    this.IsClickedNomAsc = false;
                    this._dateCreationAsc = false;
                    this.IsClickedDateCreationAsc = false;
                    this.OnUpdated(this.GetSelectProject());
                }**/
     
     
        }
    L'on peut voir ici de nombreux commentaires, ces derniers sont les différentes manières que j'ai essayé afin de résoudre mon problème. Et aucune ne fonctionne... Pour montrer quel filtre est utilisé je le change de couleur et quand il se désactive j'aimerais qu'il revienne à sa couleur d'origine (sans avoir à re-cliquer sur le bouton/lien).


    Avez vous une idée, s'il vous plaît ?

    En vous remerciant.

    Bonne journée.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Points : 1 327
    Points
    1 327
    Par défaut
    Bonjour,

    pour le premier problème, met un point d'arrêt sur ta ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gridItem[column.UniqueName].ToolTip = gridItem.OwnerTableView.DataKeyValues[gridItem.ItemIndex]["projet_id"].ToString();
    ensuite vérifie, mais projet_name n'a pas l'air d'exister (majuscule manquante ou autre ?)

    Pour ton second problème, il s'agit d'un problème de logique probablement.
    Quand tu clique sur un filtre, il devient à true, les autres à false.
    Donc là tu appliques ton filtre, et une fois le filtre appliqué il suffit de faire un truc du genre

    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
    if (IsClickedNomAsc)
    {
         filtre1.color = color.blue;
    }
    else
    {
         filtre1.color = color.black;
    }
    if (IsClickedDateModificationAsc)
    {
         filtre2.color = color.blue;
    }
    else
    {
         filtre2.color = color.black;
    }
    ...

  3. #3
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour !

    Je vous remercie asmduty pour votre réponse.

    Pour ce qui est du problème du filtre j'en suis venue à la même conclusion, et ça a l'air de fonctionner comme je veux.

    Pour cela j'ai mis à false les données des autres boutons, lorsque l'un d'eux est à true.

    Pour l'autre problème je vais essayer de faire un point d'arrêt sur la ligne.

    Si jamais je réussis à résoudre le problème avec le tooltip, je donnerais la solution ici.

    Merci bien. ^_^

    Bonne journée.

    Edit : Est-ce que mon problème avec le tooltip ne viendrait pas de ma formule aussi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gridItem[column.UniqueName].ToolTip = gridItem.OwnerTableView.DataKeyValues[gridItem.ItemIndex]["projet_id"].ToString();
    ItemIndex ne fait-il pas référence à la clé primaire d'une table ? Si oui, par quelle formule puis-je le remplacer pour avoir un autre attribut de la table qui s'affiche au lieu de la clé primaire, s'il vous plaît ?

    En vous remerciant.

  4. #4
    Membre habitué Avatar de lou87
    Profil pro
    Inscrit en
    Février 2006
    Messages
    368
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 368
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Grâce à l'aide d'une collègue, le problème du tooltip est résolu.

    Voici la solution :
    - il a fallu changer une partie du code d'interface avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <telerik:GridTemplateColumn HeaderText="Name" UniqueName="Name" >
                    <ItemTemplate>
                        <asp:Label runat="server" ID="lblPrjName" ></asp:Label>
                    </ItemTemplate>
                </telerik:GridTemplateColumn>
    - puis dans le code dans la partie 'OnItemDataBound':
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Label lblPrjName = (Label)e.Item.FindControl("lblPrjName");
                    lblPrjName.Text = lblPrjName.ToolTip = row["projet_name"].ToString();
    Voilà. ^_^

    Bonne journée !

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

Discussions similaires

  1. Problème Affichage données dans requete synthèse
    Par Sebastien1977 dans le forum Access
    Réponses: 1
    Dernier message: 21/02/2012, 11h06
  2. Réponses: 4
    Dernier message: 25/11/2011, 09h12
  3. Réponses: 5
    Dernier message: 23/01/2009, 11h12
  4. Problème affichage données dans listview
    Par Alixe80 dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 13/05/2008, 20h42
  5. [SQL] Moteur de recherche problème affichage donnée dans select
    Par vincedjs dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 07/04/2006, 20h27

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