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] Comment ouvrir un popup sur le clic d'un DataGrid ?


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Points : 97
    Points
    97
    Par défaut [VB.NET] Comment ouvrir un popup sur le clic d'un DataGrid ?
    hello, je cherche à ouvrir une popup sur click d'une ligne de mon datagrid, à laquelle je passe en parametre la valeur d'une colonne par l'URL.
    Je ne sais pas comment récupérer la valeur d'une colonne de la ligne selectionnée, en sachant que je ne veux pas de buttonColumn.
    J'ai essayé OnItemCommand mais quand je clique sur ue ligne rien ne se passe :'(
    Voici mon code :
    Datagrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:DataGrid id="DataGrid1" runat="server" Width="100%" CellPadding="3" GridLines="Vertical" AllowPaging="True" CssClass="Datagrid" AutoGenerateColumns="False" AllowSorting="True" OnSortCommand="DataGrid1_Sort" OnItemCommand="DataGrid1_ItemCommand">
    Codebehind
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub DataGrid1_ItemCommand(ByVal sender As System.Object, ByVal e As DataGridCommandEventArgs) Handles DataGrid1.ItemCommand
            Response.Write("<body><script>window.open(DemandeDetail.aspx?id=" & e.Item.Cells(0).ToString & ", ""Détail de la demande"", ""toolbar=yes, status=yes, directories=yes, menubar=yes, location=yes, scrollbars=yes, resizable=yes"");</script></body>")
        End Sub
    En fait, je dois pas etre sur le bon évènement car il ne se déclenche pas...

    des idées ??
    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Juin 2004
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 14
    Points : 13
    Points
    13
    Par défaut
    lut
    tu doit definir quand est appeler la commande Item.
    Tu as definit dans ton dataGrid que la commande Item enclencherais ta fonction. Mais tu doit dans ta colonne cible mettre un Commandname=Item.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <asp:datagrid id="dg_cat" runat="server" AutoGenerateColumns="false"  OnEditCommand="edit_categorie"
     
     
    <Columns>
    <asp:TemplateColumn HeaderStyle-BackColor=#6699ff HeaderText="Edit" ItemStyle-HorizontalAlign=Center>
    <ItemTemplate>
     
    	<asp:LinkButton CommandName="edit"  Runat=server  ID="btn_edit"><img name=imgedit alt=Editer src=img/edit.gif border=0 /></asp:LinkButton>
    </ItemTemplate>
    Dans mon exemple c'est un Linkbutton qui enclenchera la Command Edit du Data Grid. Et Celle ci lancera la fonction edit_categorie dans mon Code Behind.

    et voila la signature de ma fonction dans mon code behind:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sub edit_categorie(ByVal source As Object, ByVal e As DataGridCommandEventArgs)
    J'espere que la reponse te va

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Points : 97
    Points
    97
    Par défaut
    bah en fait je veux pas de bouton ! Je cherche depuis 1 h comment faire en sorte qu'un pauvre click sur une ligne du datagrid m'ouvre une fenetre en popup avec en parametre l'id de la ligne.
    Ca parait super simple, mais je ne trouve rien et je galère trop là p***in !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Points : 97
    Points
    97
    Par défaut

    allez un ptit effort svp...

    j'ai tenté sur le itemcreated du datagrid :

    e.Item.Attributes.Add("onclick", "window.open('DemandeDetail.aspx?id=" & e.Item.Cells(0).Text & "', 'Détail de la demande', 'toolbar=yes,status=yes,directories=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes')")

    mais ça marche pô...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 117
    Points : 97
    Points
    97
    Par défaut houra
    bon, pour ceux qui galere, il faut ajouter une propriété js sur le datagrid au moment où l'évènement DataBound se produit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub DataGrid1_Bound(ByVal sender As Object, ByVal e As DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
            e.Item.Attributes.Add("onclick", "window.open('page.aspx?id=" & e.Item.Cells(0).Text & "', '', 'toolbar=yes,status=yes,directories=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes')")
    End Sub
    Peut être à ajouter dans la FAQ ?
    ++

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Avril 2006
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Voila
    Pour ouvrir un popup par code (à partir d’un bouton dans un datagrid) :

    - On écrit un script :
    function OpenPopup(Nom,id)
    {
    var lien = Nom + '.aspx?ID='+id;
    window.open(lien,Nom,'toolbar=0,menubar=0,location=0,scrollbars=1,width=400,height=300');
    }
    On déclare : DataGrid1.DataKeyField = "partner_id" /On définit la clé de la Datagrid
    - Et après:
    Public Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
    If (e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem) Then
    Dim link1 As LinkButton = CType(e.Item.FindControl("link2"), LinkButton)
    Dim keyvalue As String
    keyvalue = DataGrid1.DataKeys(e.Item.ItemIndex)
    link1.Attributes("onclick") = "javascript:OpenPopup('Modif_Partenaire','" + keyvalue + "');"

    End If
    End Sub

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

Discussions similaires

  1. Réponses: 18
    Dernier message: 07/06/2006, 15h16
  2. Réponses: 24
    Dernier message: 26/05/2006, 15h08
  3. Réponses: 3
    Dernier message: 21/10/2005, 09h54
  4. [VB.Net] Comment effacer des traits sur un graphique ?
    Par bert24 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/09/2005, 14h20

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