Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002

    Gridview e passaggio valori altra finestra

    Buongiorno,
    vorrei avere un suggerimento.
    Vorrei usare una griglia e creare un templatecolumn dove inserire un linkbutton e fare il postbackurl ad una pagina nuova (blank).

    Qui i miei dubbi :

    Col postbackurl non posso aprire una pagina nuova ?

    Come faccio dalla pagina di destinazione a recuperare l'id della riga su ciu si è fatto click per eseguire il postback ?

    Avevo pensato di metterlo nel commandargument, ma non so però come riconoscere la riga da cui è partito il postback non essendo selezionata.

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    non so se si possa fare come dici tu, ma sicuramente si può fare con semplice html e javascript.
    Per esempio, nell'ItemTemplate metto un link o un pulsante:

    ');return false;">apri pagina

    dove apri_pagina è una funzione javascript a cui passo i parametri da inviare alla pagina richiamata

    function apri_pagina(id_provincia)

    qui metto il classico window.open o altro codice che mi serve, per esempio:

    window.open(format('../../../../scrivi_parametri.aspx?id={0}', id_provincia),'popup','width=800px,height=600px,to p=100px,left=100px');


    Il fatto è che funziona senza tanti problemi. La pagina richiamata recupera i parametri passati col solito modo, querystring o form

    Pietro

  3. #3
    ciao, il metodo classico che ha suggerito pietro funziona sempre.
    Si tratta semplicemente di applicare le semplicissime regole del web al contesto di una gridview.

    Ogni pulsante eseguirà un semplice window.open, aprendo la nuova pagina ed avendo, questa volta, il parametro (ID) in querystring.
    (domanda per pietro: esiste la funzione format in javascript come hai usato tu?)
    codice:
    function apri_pagina(id_riga)
    {
    window.open('Nuova_pagina.aspx?id=' + id_riga, 'popup','width=800px,height=600px,top=100px,left=100px');
    }

    Altra soluzione è invece l'utilizzo del meccanismo di CrossPage PostBack messo a disposizione con ASP.NET.

    si può dunque creare un linkButton impostando il postbackurl, ma con l'accortezza di modificare il target del form, in modo da aprire una nuova finestra, e poi ripristinare il tutto.
    ecco il codice:
    codice:
            <asp:LinkButton Text="Click to open" runat="server" PostBackUrl="~/Pagine/receivePostBack.aspx" 
                ID="lnkNewTarget" CommandArgument="5" OnClientClick="javascript:gotoNewWindows('_blank');" />
    codice:
        <script type="text/javascript">
            function gotoNewWindows(target)
            {
                var Old_action = document.forms[0].action;
                var Old_target = document.forms[0].target;
                document.forms[0].target = target;
                window.setTimeout(
                    'document.forms[0].target=\'' + Old_target + '\';document.forms[0].action=\'' + Old_action + '\'',
                    200
                );
            }
        </script>
    Nella pagina che riceve il postback:
    codice:
    protected void Page_Load(object sender, EventArgs e)
    {
        string argument = string.Empty;
        LinkButton lnkNewTarget = PreviousPage.FindControl("lnkNewTarget") as LinkButton;
        if (lnkNewTarget != null)
            argument = lnkNewTarget.CommandArgument;
    }

    ciao

  4. #4
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Grazie a tutti, ma il vero problema è capire come recuperare dalla griglia su quale link si è fatto click.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da cassano
    Grazie a tutti, ma il vero problema è capire come recuperare dalla griglia su quale link si è fatto click.
    Abbi pazienza, ma non capisco
    Non basta utilizzare Eval per recuperare le informazioni che servono?
    Pietro

  6. #6
    Originariamente inviato da cassano
    Grazie a tutti, ma il vero problema è capire come recuperare dalla griglia su quale link si è fatto click.
    Non lo devi recuperare dalla griglia, ma dal commandArgument che avrai opportunamente settato (o con la Key della row - come ho fatto io nell'esempio - , o con l'index).

    mi sa che ti devi dare una spolverata al funzionamento della griglia, prima di aprire un'altra pagina.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.