Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139

    Apertura finestra popup con passaggio di parametri

    Dopo un pò di tentativi qualcosa sono riuscito a fare.
    In pratica da una form nella pagina madre ho un textbox e con un click
    su un pulsante mi apre una popup.

    L'apertura della popup la faccio in questo modo:

    <script language="Javascript">
    function GetPagamenti(CtrlName)
    {
    ChildWindow = window.open('popupPag.aspx?FormName=' +
    document.forms[0].name + '&CtrlName=' + CtrlName, "PopUpPagamenti",
    "width=500,height=500,top=200,left=200,toolbars=no ,scrollbars=no,status=no,resizable=yes");
    }
    </script>

    Ora nella popup carico un datagrid con 2 campi più una colonna Button
    Associo alla colonna Button in questo modo:

    Private Sub grid_ItemDataBound(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridItemEventArgs) Handles
    grid.ItemDataBound
    Select Case e.Item.ItemType
    Case ListItemType.Item, ListItemType.AlternatingItem
    Dim cellItem As TableCell
    cellItem = e.Item.Cells(2)
    Dim BtnDel As Button
    BtnDel = CType(cellItem.Controls(0), Button)
    BtnDel.Attributes.Add("onclick", "javascript:
    ReturnPagamenti()")
    End Select
    End Sub

    Private Sub grid_ItemCommand(ByVal source As Object, ByVal e As
    System.Web.UI.WebControls.DataGridCommandEventArgs ) Handles
    grid.ItemCommand
    strSelectedPagamenti = e.Item.Cells(0).Text
    End Sub

    e nell'HTML ho la funzione ReturnPagamenti dichiarata in questo modo:

    function ReturnPagamenti()
    {
    window.opener.document.forms["<%= strFormName
    %>"].elements["<%= strCtrlName %>"].value = "<%= strSelectedPagamenti
    %>";
    window.close();
    }
    </script>

    Non riesco a capire come mai mi apre la pagina e quando seleziono la
    riga mi viene evidenziata ma non esegue la funzione Javascript.
    Mi potete aiutare?

  2. #2
    Sostituisci il case nella grid_ItemDataBound con

    Case ListItemType.Item, ListItemType.AlternatingItem, ListItemType.SelectedItem


    Fammi sapere
    Ciao
    K
    Kalman

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    Niente da fare...

    mi sembra che nel mio caso il pbl è che non fa partire la funzione
    fatta in javascript.
    In poche parole, in questa Sub:

    Private Sub grid_ItemDataBound(ByVal sender As Object, ByVal e As
    System.Web.UI.WebControls.DataGridItemEventArgs) Handles
    grid.ItemDataBound
    Select Case e.Item.ItemType
    Case ListItemType.Item, ListItemType.AlternatingItem
    Dim cellItem As TableCell
    cellItem = e.Item.Cells(2)
    Dim BtnDel As LinkButton
    BtnDel = CType(cellItem.Controls(0), LinkButton)
    ' Dim content As String =
    String.Format("javascript: ReturnPagamenti('{0}')",
    e.Item.Cells(0).Text)
    Dim content As String = String.Format("javascript:
    return confirm('Sei sicuro di voler eliminare il record {0}?')",
    e.Item.Cells(0).Text)
    BtnDel.Attributes.Add("onclick", content)
    End Select
    End Sub

    Se fatta così con il "return confirm" mi funziona, se uso quella
    commentata... non mi esegue la mia funzione.
    Perchè?

    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    Quello che ho notato è che se alla funzione javascript

    function ReturnPagamenti(value)
    {
    window.opener.document.forms["<%= strFormName %>"].elements["<%= strCtrlName %>"].value = value;
    window.close();
    }

    lascio solo window.close funziona, ma la opener non mi funziona.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    Originariamente inviato da temerario
    Quello che ho notato è che se alla funzione javascript

    function ReturnPagamenti(value)
    {
    window.opener.document.forms["<%= strFormName %>"].elements["<%= strCtrlName %>"].value = value;
    window.close();
    }

    lascio solo window.close funziona, ma la opener non mi funziona.
    Se rimetto la funzione mi seleziona la riga ma non succede nulla

  6. #6
    Nella funzione prova a mettere

    alert(window.opener.location)


    Ciao
    k
    Kalman

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    Mi ritorna l'indirizzo della pagina chiamante

  8. #8
    Proviamo nella window.open metti status=yes
    Poi nella funzione iniziale togli il window.close
    Così dovresti vedere nella popup in basso a sinistra se ci sono errori js. Vediamo cosa dice.

    Ciao
    K
    Kalman

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2005
    Messaggi
    139
    K sono riuscito
    Era solo perchè non impostavo bene la opener della function che veniva chiamata.

    Grazie per l'aiuto

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 © 2026 vBulletin Solutions, Inc. All rights reserved.