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 :

[VB.NET] gridview RowDataBound probleme


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut [VB.NET] gridview RowDataBound probleme
    Bonjour,

    une simple question que je n'arrive bizarrement pas a resoudre....

    j ai une colonne d'un gridview que j'aimerais remplir dynamiquement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <asp:GridView ID="gvDocument" runat="server" AutoGenerateColumns="False" Height="224px" ShowHeader="False" OnRowDataBound = "gvDocument_RowDataBound" Style="z-index: 107; left: 360px; position: absolute; top: 176px" Width="392px">
     <Columns>
         <asp:BoundField DataField="Link" Visible="False" />        <asp:TemplateField>
         <ItemTemplate>
         <asp:Image runat="server" ID="State_File"/>        
         </ItemTemplate>
         </asp:TemplateField>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Sub gvDocument_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs)
     
            Dim L As System.Web.UI.WebControls.Image
            L = CType(e.Row.FindControl("State_File"), System.Web.UI.WebControls.Image)
     
     
            L.ImageUrl = "Pics/ok.gif"
    l'erreur est: "Object reference not set to an instance of an object." sur la derniere ligne ...

    Il me semble que ca a l 'air correct ... qqn peut m'aider ? merci bcp ....

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 18
    Par défaut
    salut tu devrais mettre le lien vers l'image comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    L.ImageUrl = "~/Pics/ok.gif"
    si le dossier Pics est a la racine du site.

  3. #3
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Bonjour

    Ton objet L est "Nothing", vérifie en mode Debug . Cela veut dire que
    (e.Row.FindControl("State_File")) est à Nothing au moment ou tu l'appelles.

    VOilà la méthode que j'utilise pour pas avoir a faire des .FindControl hasardeux :
    ASPX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <asp:Image ID="Image1"  OnLoad="Image_Load" runat="server" />
    ...
    Code Behind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        Protected Sub Image_Load(ByVal sender As Object, ByVal e As System.EventArgs)
            Dim oImage As Image = sender
            'Si tu ne mets rien devan le nom l'image, alors tu es à la racine du site
            oImage.ImageUrl = "monimage.jpg"
        End Sub
    Voilà

    A bientôt

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Premierement, merci pour vos reponses....

    Ta methode "Image_Load" marche evidemment tres bien, mais j aimerais quand meme pourvoir utiliser "_RowDataBound". Parce que j aimerais recuperer une valeur qui se trouve egalement dane le Gridview, et traiter l'image a afficher selon cette valeur...

    Donc il me faudrait vraiment etre capable de linker les lignes de mon Gridview a des objets ...

    merci pour vos suggestions...

  5. #5
    Membre chevronné
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2006
    Messages
    400
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 400
    Par défaut
    Bonjour

    Effectivement, vu comme ça, c'est mieux de passer par le DataBound ...
    Est -ce que tu as essayé en mode Debug, de lister les controls dans e.Row pour voir si il n'y a pas un conflit sur l'ID ?

    Bon courage

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Avril 2007
    Messages : 135
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Protected Sub gvDocument_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles gvDocument.RowDataBound
            If e.Row.RowType = DataControlRowType.DataRow Then
     
                ' the path of the file
                Dim hidden_column As DataRowView = e.Row.DataItem()
                Dim path As String = hidden_column("Link").ToString
     
     
                Dim image As System.Web.UI.WebControls.Image
                image = CType(e.Row.FindControl("State"), System.Web.UI.WebControls.Image)
     
                image.ImageUrl = "Pics/error.gif"
            End If
    End Sub
    Voila la soluc', je vous mets le code, merci pour votre aide.
    Le probleme c'est que je ne comprends toujours pas pourquoi ca ne marchait pas

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

Discussions similaires

  1. gridview rowdatabound probleme
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/08/2008, 17h26
  2. [ASP.net][GridView] Probleme sur un update
    Par jeromechezgdf dans le forum ASP.NET
    Réponses: 6
    Dernier message: 31/05/2007, 17h23
  3. [VB.net] Module et probleme de conversion
    Par nico10gbb dans le forum Windows Forms
    Réponses: 4
    Dernier message: 24/04/2006, 09h35
  4. [VB.NET][dataset][datagrid] probleme de Cast
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/05/2005, 14h18
  5. [VB.Net] Un autre probleme avec controle DropDownList
    Par angelevil dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/03/2005, 14h59

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