• User Newbie

    Eseguire query javascript

    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 aal validazione) devo modificare il contenuto di un altro textbox eseguendo del codice JavaScript con accesso a sqlServer.
    Pare però che il codice non venga lanciato.
    Il codice in vbNet è il seguente:

        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")
     
            txt1.Attributes.Add("onkeyup", String.Format("MakeTotal({0},{1},{2},{3},{4});", Periodo, lblCodiceAzienda.Text, lblCodDipendente.Text, txt1.Text, txtRes.ClientID))
        End Sub
    

    In JavaScript invece è il seguente:

     <script language='javascript' type='text/javascript'>
         function MakeTotal(Periodo, CdAzienda , CdDipendente , Lordo , txtRes) {
            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 sembra non accadere niente
    qualcuno sa dirmi dove sbaglio?
    grazie mille.
    Marco.


  • User Newbie

    Riformulo la domanda, perchè era mal posta:

    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:

        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:

     <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.