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 :

ouvrir une url dans une nouvelle fenetre


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut ouvrir une url dans une nouvelle fenetre
    Bonjour,

    Marrant ça, 4 ans après, j'ai le même problème qu'ici et on n'a toujours pas de réponse
    Pardonnez-moi d'avoir déterré ce sujet, mais comme preuve que je cherche avant de demander, je suis tombé sur ce sujet.
    Donc, pour mon compte, cette-fois, je relance la question.

    Merci de m'aider

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    Je crois que tu peux faire ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ScriptManager.RegisterStartupScript(Page, typeof(string), "New window", "window.open("+url+"); return false;", true);

  3. #3
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Je note.

    Pour préciser mon cas, je pars d'un Hyperlink construit dynamiquement en fonction de la consultation d'une base de donnée. ça rempli un tableau avec tous ces hyperlinks.
    la classe HyperLink possède l'argument Target, ça vient de me faciliter le travail

    Mais sur le fonctionnement d'un bouton, qui lance un javascript "window.open(...), chose curieuse, j'ai bien un nouvel onglet (considéré comme pop-up au départ), mais ledit tableau de la page d'origine (qui reste ouverte) se vide systématiquement. Alors qu'avec l'HyperLink, non.

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    parce que cette fonctionne effectue un potback sur la page qui l'appelle, pour éviter que tes contrôles soit mise à jour il faut pas que tu les recharge sur un postback
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if (!IsPostBack)
    {
    monControl.datasource=tata;
    monControl.databind();
    }

  5. #5
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    Merci pour l'ouverture du nouveau sujet.

    Petit rappel (j'ai oublié : il s'agit de ASP.Net/VB.Net)

    Oui, donc, j'ai déjà cette fonction "if Not IsPostBack Then..." dans le page_load de la page d'origine (default.aspx/.vb, dans mon cas)
    Comme je disais, default n'est pas remplacé car l'url ouverte (via la fonction javascript "window.open('url')" s'ouvre dans un autre onglet (ou pop-up, plus exactement). Ce qui me perturbe, c'est que, bien que mes critères de filtrage, ainsi que le contenu des différents champs de saisie ne soient pas affectés, le tableau généré dynamiquement, lui, est vidé. (de là, j'ai un bouton "appliquer les filtres" qui recharge le tableau, mais c'est ennuyeux pour la navigation quand le tableau est très long).
    A savoir, que l'appel à la méthode qui construit le tableau EST dans mon "if Not IsPostBack Then..."
    Le Page_Load :
    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
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            If Not IsPostBack Then
     
                Threading.Thread.CurrentThread.CurrentCulture = _
                                New System.Globalization.CultureInfo("fr-FR")
     
                myCulture = Threading.Thread.CurrentThread.CurrentCulture
     
                ddl_countrie.DataBind()
                ddl_countrie.SelectedValue = "-1"
     
                rb_format.SelectedValue = "dd/MM/yyyy"
     
                SetInterface(Now)
     
                SetAGs(Format(Now, "dd/MM/yyyy"))
     
            End If
        End Sub
    Et le SetAGs qui construit le calendrier (tableau) :
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
        Sub SetAGs(ByVal _d As Date)
     
            Dim _defaultformat = rb_format.SelectedValue       
            Dim _s As Integer     
            Dim current_d As Date
     
            current_d = _d
     
            For _s = 1 To ddl_semaine.SelectedValue
     
                Dim myHeaderRow As New TableRow
                Dim myContainerRow As New TableRow
     
                For i As Integer = 1 To 7
     
                    Dim myHeaderCell As New TableCell
                    myHeaderCell.CssClass = "defaultheader"
                    Dim myLabel As Label = New Label()
                    myLabel.Text = CStr(Format(current_d, _defaultformat))
                    myHeaderCell.Controls.Add(myLabel)
                    Dim myCell As New TableCell
     
                    If Left(CStr(Format(current_d, "D")), 3) = "sam" Or Left(CStr(Format(current_d, "D")), 3) = "dim" Then
                        myCell.CssClass = "defaultwe"
                    Else
                        myCell.CssClass = "defaultday"
                    End If
     
                    Dim _l As List(Of TSoc) = New List(Of TSoc)
     
                    If ck_filtre.Checked = False Then
     
                        _l = Service.GetMeetings(current_d, ddl_countrie.SelectedValue)
     
                        For Each myMeeting In _l
     
                            Dim myLink As HyperLink = New HyperLink
                            Dim myliteral As Literal = New Literal
                            myliteral.Text = "<br />"
                            myLink.Text = myMeeting.Raison_Sociale
                            myLink.Target = "_blank"
                            myLink.NavigateUrl = "EditAssemblee.aspx?id=" & myMeeting.ID
                            If myMeeting.Code_Type_AG = 2 Then
                                myLink.ForeColor = Drawing.Color.Chocolate
                            Else
                                myLink.ForeColor = Drawing.Color.Green
                            End If
     
                            myCell.Controls.Add(myLink)
                            myCell.Controls.Add(myliteral)
     
                        Next
     
                    End If
     
                    _l = Service.GetMeetingsByDeadline(current_d, ddl_countrie.SelectedValue)
     
                    For Each myMeeting In _l
     
                        Dim myLink As HyperLink = New HyperLink
                        Dim myliteral As Literal = New Literal
                        myliteral.Text = "<br />"
                        myLink.Text = myMeeting.Raison_Sociale
                        myLink.NavigateUrl = "EditAssemblee.aspx?id=" & myMeeting.ID
                        myLink.Target = "_blank"
                        myLink.ForeColor = Drawing.Color.Red
                        myCell.Controls.Add(myLink)
                        myCell.Controls.Add(myliteral)
     
                    Next
     
                    myHeaderRow.Cells.Add(myHeaderCell)
                    myContainerRow.Cells.Add(myCell)
                    current_d = DateAdd(DateInterval.Day, 1, current_d)
     
                Next
     
                TCalendar.Rows.Add(myHeaderRow)
                TCalendar.Rows.Add(myContainerRow)
     
            Next
     
        End Sub
    N.B. : C'est marrant, mais dans le bloc Code, les commentaires affectent aussi la ligne suivante. J'ai dû les virer pour poster ici.

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 066
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 066
    Points : 4 233
    Points
    4 233
    Par défaut
    ajoute peut être à ta condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     If Not IsPostBack and Not IsCallBack
    je connais pas la syntaxe exacte en vb

  7. #7
    Membre régulier Avatar de Othana
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 188
    Points : 86
    Points
    86
    Par défaut
    C'est cette syntaxe. Mais ça n'influe pas. Mon tableau est détruit à chaque ouverture du nouvel onglet via le bouton.
    D'ailleurs, je poste le code du script (on sait jamais, j'ai l'impression que ça vient surtout de la méthode d'ouverture) :
    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
    [...]<script language="Javascript">
            function chercherclick(val) {
     
                PageMethods.Chercher(val, reussi, echec, null);
     
            }
     
            function reussi(aResultat, aContexte, aNomMehode) {
                window.open('EditAssemblee.aspx?Id=' + aResultat);
            }
     
            function echec(aResultat, aContexte, aNomMehode)
            {
                input_box = confirm(aResultat.get_message());
                if (input_box == true) {
                    window.open('CreeAssemblee.aspx');
                }
                else {
                    window.location.replace(document.URL);
                }
            }
        </script>
    </head>
    <body>
    [...]
    Rechercher&nbsp;<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    <cc1:AutoCompleteExtender ID="TextBox1_AutoCompleteExtender"
                        runat="server" CompletionInterval="10" CompletionListCssClass="extenderlist"
                        Enabled="True" MinimumPrefixLength="1" ServiceMethod="GetCompanies"
                        ServicePath="WService.asmx" TargetControlID="TextBox1">
                    </cc1:AutoCompleteExtender>
                    <asp:Button ID="BtChercher" runat="server" OnClientClick="chercherclick(TextBox1.value);" Text="go!" />
    Petite explication : l'AutoCompleteExtender (contrôle AJAX) fait apparaitre une liste en fonction de ce qu'on commence à taper dans TextBox1. Donc, le boutton Go! récupère aResult pour fabriquer l'url à ouvrir (une page avec un paramètre).
    La méthode Window.open ouvre sensément un pop-up et pas juste une url sur une autre page, au contraire de ce que j'ai fait avec HyperLink et le paramètre Target="_blank".

Discussions similaires

  1. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  2. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  3. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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