Visualizzazione dei risultati da 1 a 7 su 7

Discussione: gridview + javascript

Hybrid View

  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    ammesso di aver capito quello che vuoi , creo una funzione javascript

    function cambioSconto(sconto, importo, id_txtTabelloneImporto){}

    dove le passo tre parametri: sconto, importo, id di output

    Questa funzione la lancio, per esempio, cliccando il pulsante -

    Sfrutto l'evento RowDataBound del gridview

    codice:
    Protected Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
        Dim dbr As System.Data.Common.DbDataRecord = DirectCast(e.Row.DataItem, System.Data.Common.DbDataRecord)
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim btnDiminuisciSconto As Button = TryCast(e.Row.FindControl("btnDiminuisciSconto"), Button)
            If btnDiminuisciSconto IsNot Nothing Then
                Dim txtTabelloneImporto As TextBox = TryCast(e.Row.FindControl("txtTabelloneImporto"), TextBox)
                If txtTabelloneImporto IsNot Nothing Then
                    Dim sconto As String = dbr("sconto").ToString.Replace(","c, "."c)
                    Dim importo As String = dbr("importo").ToString.Replace(","c, "."c)
    
                    Dim codiceJS As String = String.Format("cambioSconto({0},{1},'{2}');return false;", sconto, importo, txtTabelloneImporto.ClientID)
    
                    btnDiminuisciSconto.OnClientClick = codiceJS
                End If
            End If
        End If
    End Sub
    Pietro

  2. #2
    Quote Originariamente inviata da pietro09 Visualizza il messaggio
    ammesso di aver capito quello che vuoi , creo una funzione javascript

    function cambioSconto(sconto, importo, id_txtTabelloneImporto){}

    dove le passo tre parametri: sconto, importo, id di output

    Questa funzione la lancio, per esempio, cliccando il pulsante -

    Sfrutto l'evento RowDataBound del gridview

    codice:
    Protected Sub GridView1_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
        Dim dbr As System.Data.Common.DbDataRecord = DirectCast(e.Row.DataItem, System.Data.Common.DbDataRecord)
        If e.Row.RowType = DataControlRowType.DataRow Then
            Dim btnDiminuisciSconto As Button = TryCast(e.Row.FindControl("btnDiminuisciSconto"), Button)
            If btnDiminuisciSconto IsNot Nothing Then
                Dim txtTabelloneImporto As TextBox = TryCast(e.Row.FindControl("txtTabelloneImporto"), TextBox)
                If txtTabelloneImporto IsNot Nothing Then
                    Dim sconto As String = dbr("sconto").ToString.Replace(","c, "."c)
                    Dim importo As String = dbr("importo").ToString.Replace(","c, "."c)
    
                    Dim codiceJS As String = String.Format("cambioSconto({0},{1},'{2}');return false;", sconto, importo, txtTabelloneImporto.ClientID)
    
                    btnDiminuisciSconto.OnClientClick = codiceJS
                End If
            End If
        End If
    End Sub
    Dim dbr As System.Data.Common.DbDataRecord = DirectCast(e.Row.DataItem, System.Data.Common.DbDataRecord)

    mi segna questa riga come errore quando si apre tale pagina con la gridview e mi scrive:

    Eccezione di tipo 'System.InvalidCastException' in nomeDLL.dll non gestita nel codice utente

    Ulteriori informazioni: Impossibile eseguire il cast di oggetti di tipo 'System.Data.DataRowView' sul tipo 'System.Data.Common.DbDataRecord'.

    aiutooooooooo...
    grazieee.... ;-)
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

  3. #3

    ok

    Seguendo il tuo e mettendo del mio (aiutoooo) ho fatto una mezza cosa:

    codice:
      dim ValoreBase as integer= "20"
      If (e.Row.RowType = DataControlRowType.DataRow) Then
    
    
       Dim btnDiminuisciSconto As Button = TryCast(e.Row.FindControl("btnDiminuisciSconto"), Button)
                Dim txtTabelloneSconto As TextBox = TryCast(e.Row.FindControl("txtTabelloneSconto"), TextBox)
                Dim txtTabelloneImporto As TextBox = TryCast(e.Row.FindControl("txtTabelloneImporto"), TextBox)
                btnDiminuisciSconto.Attributes.Add("onclick", String.Format("cambioSconto({0},{1},'{2}');return false;", ValoreBase, txtTabelloneSconto.Text, txtTabelloneImporto.ClientID))
    
      end if
    in JS

    codice:
     function cambioSconto(valorebase, sconto, id_txtTabelloneImporto) {
    
                 var valBase = valorebase;
               var valSconto = (sconto-1);
    
    
               var scontoCalcolato = valBase - ((valBase / 100) * (valSconto));
         
    
               alert("valore base: " + valBase + " valore sconto: " + valSconto + " pos: " + id_txtTabelloneImporto);
               alert("prezzo scontato: " + scontoCalcolato);
               scontoCalcolato = scontoCalcolato.toFixed(2).toString().replace(".", ",")
               alert("valore corretto: " + scontoCalcolato);
    
    
        
           }
    quindi ci siamo...

    come faccio a resituirlo "scontoCalcolato" a

    Dim txtTabelloneImporto As TextBox = TryCast(e.Row.FindControl("txtTabelloneImporto"),

    mi manca solo questo...
    poi se funziona sistemiamo anche la sintassi perchè nel tuo esempio c'erano altre condizioni.. ;-)

    ciao e grazie
    Ultima modifica di marco.santilli; 27-02-2017 a 19:07
    i7 3770K --- Asus P8z77 --- 2x4Gb Corsair Vengeance 2133MHz--- Enermax NoiseTaker II 600w --- SSD: 128Gb Vertex 4 --- WD 1000Gb --- WD 2000Gb --- ASUS ATI5850 1Gb --- Case: Kandalf 25cm Fan --- Tastiera Logitech G15 --- Mouse Razer Copperhead

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.