Gridview somma

giovedì 13 dicembre 2007 - 16.42

batti Profilo | Newbie

Ciao,
pensavo con il thread scorso di aver chiuso il mio problema ma non è così... io ho un gridview che prende i dati da una tabella di un db che contiene descrizione e prezzo di alcuni articoli, poi ho aggiunto due colonne una per la quantità da inserire ed una per il risultato, vorrei che nel risultato venisse fatto da parte client una moltiplicazione, ma non conoscendo javascript non riesco a farla....
per facilitare le cose al momento ho messo un altro inputtext che mi va a prendere il valore del prezzo nella tabella (text2)

<input ID="Text2" Value='<%# DataBinder.Eval(Container.DataItem, "Prezzo") %>' runat="server" />
<input ID="Text4" style="width: 49px" type="text" onclick="moltiplica()" />

praticamente sull'evento onclick dovrei fare text2*text4 io ho fatto così ma non funziona

function moltiplica() {
var myTextField =document.getElementById('text4');
var myTextField2 =document.getElementById('text2');

valore1 = parseInt(myTextField.value);
valore2 = parseInt(myTextField2.value);
moltip = valore1 * valore2;
if(myTextField.value != "")
alert("Valore: " + moltip )
else
alert("Campi non valorizzati....")
}

ho messo l'alert invece che scrivere in un textbox per vedere almeno se restituiva qualcosa

P.s. il titolo voleva essere Gridview Moltiplicazione.....

freeteo Profilo | Guru

ciao,
il problema è che a runtime il tuo controllo non si chiama "text4" ma prende un nome dato dal runtime di asp.net quando genera il controllo "renderizzando" l'html relativo al tipo di controllo (nel caso di textbox è un tag "input").
Infatti se vai a guardare il sorgente della pagina vedrai che il tag ha un id diverso da quello che hai tu nella pagina asp.net, quindi il tuo javascript non trova un elemento con quell'id e quindi non fa il calcolo giusto.

Puoi ovviare a questa cosa usando il trucchetto che segnalavo tempo fa nel mio blog:
http://blogs.dotnethell.it/freeteo/codice-asp.net-dentro-javascript__7505.aspx

nel tuo caso dovresti farlo nella funzione javascript, piu' o meno cosi':

var myTextField =document.getElementById('<%= text4.ClientID %>');

etc... fai qualche prova in questa direzione....

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

batti Profilo | Newbie

Ciao,
grazie dell'interessamento, purtroppo il mio 'text4' è all'interno di una colonna di un gridview e anche con il sistema che mi dicevi mi viene restituito un errore del tipo : text4 non dichiarato.....

freeteo Profilo | Guru

ciao,
non riesci a fare niente lato server? altrimenti se hai una DataTable come sorgente dati del report puoi usare il metodo "Compute" dove gli fai fare un calcolo, quindi anche direttaemtne dentro alla pagina puoi scrivere:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

oppure chiamare qualche metodo tuo che fa i totali delle celle che ti interessano...io cercherei qualosa in questo senso...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

batti Profilo | Newbie

penso proprio che studierò qualche altra soluzione...
grazie comunque
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5