Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Buongiorno a tutti.
    Premetto che ho lacune in javascript, ma siccome mi hanno consigliato di usarlo per risolvere il mio problema...

    Su un repeater ho un textbox (numerico)
    Al cambiare di questo textbox (o megli alla validazione) devo modificare il contenuto di un altro textbox eseguendo del codice JavaScript con accesso a sqlServer.
    Pare però si pianta ll'assegnazione degli oggetti in variabili.

    Il codice in vbNet è il seguente:

    codice:
        Protected Sub RepeaterDip_ItemCreated(sender As Object, e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles RepeaterDip.ItemCreated
    
            If e.Item.ItemType = 0 Then Exit Sub
    
            Dim txt1 As TextBox = e.Item.FindControl("txtLordo")
            Dim txtRes As TextBox = e.Item.FindControl("txtAccantonamento")
            Dim lblCdDip As Label = e.Item.FindControl("lblCodice")
    
            txt1.Attributes.Add("onkeyup", String.Format("MakeTotal({0},{1},{2},{3},{4});", Periodo, lblCodiceAzienda.Text, lblCdDip.ClientID, txt1.ClientID, txtRes.ClientID))
    
        End Sub

    In JavaScript invece è il seguente:

    codice:
     <script language='javascript' type='text/javascript'>
         function MakeTotal(Periodo, CdAzienda , CdDipendente , Lordo , txtRes) {
             var olblCdDip = $get(CdDipendente);
             var oTxtLordo = $get(Lordo);
    
    
            var connection = new ActiveXObject("ADODB.Connection") ;
            var connectionstring="Data Source=aaaa;Initial Catalog=bbbb;User ID=cccc;Password=dddd;Provider=SQLOLEDB";
    
            connection.Open(connectionstring);
            var rs = new ActiveXObject("ADODB.Recordset");
            rs.Open("select [dbo].[RecalcAccantonamento]("+Periodo+",'"+CdAzienda+"','"+CdDipendente+"',"+Lordo+")", connection);
            rs.MoveFirst
            var Strreturn=rs.fields(1)
            rs.close;
            connection.close;
    
            $get(txtRes).value = strreturn;
    
            return false;
        }
    </script>
    mi aspetterei che, cambiando il valore sul txtLordo del repeater, si modificasse il valore sul txtAccantonamento, ma il programma sui pianta a questa riga di codice javascript:
    var olblCdDip = $get(CdDipendente);

    qualcuno sa dirmi dove sbaglio?
    grazie mille.

    Marco

  2. #2
    ciao,

    il codice che hai scritto tu, DEVE stare sul server, e non in una funzione javascript!!!!!!!
    Inoltre devi spostare il codice che hai scritto in "RepeaterDip_ItemCreated" nell'evento di binding della riga, ovvero "RepeaterDip_ItemDataBound"
    (il motivo lo puoi capire da qui: http://glucolo.wordpress.com/2011/07...-onrowcreated/); il concetto è lo stesso.

    quindi sposta la chiamata al server sul code_behind della pagina.
    in pratica devi fare una chaimata ajax

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.