Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/03/2010, 06:52
josezamora
 
Fecha de Ingreso: julio-2009
Mensajes: 60
Antigüedad: 14 años, 10 meses
Puntos: 0
activar boton desde javascript

Hola buenos dias, tengo una pagina aspx en la cual tengo un gridview y un boton guardar, que lo que me hace es guardar en una tala los datos del gridview.
Los campos del gridiew son textox que son editables.
Cuando le doy a guardar, despues de haber realizado la operacion de guardar, tengo que deshabilitar el boton de guardar y hasta ahi no hay problema.El problema llega cuando quiero volverlo a habilitar que es cuando se modifique algun textbox del gridview.
¿Alguien me puede comentar como realizar eso?
Tengo una funcion en javascript que me calcula el total de unos valores de la fila y habia pensado que cuando se relice esa funcion habilitar el boton guardar, pero no se como realizarlo.
Para llamar a la funcion de javascript lo realizo desde el evento GridView_productos_DataBound.Os pongo el procedimiento aqui y la funcion javascript.Espero me podais responder lo antes posible gracias de antemano.

Protected Sub GridView_productos_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView_productos.DataBound

Dim i As Integer

If Me.GridView_productos.Rows.Count = 0 Then


Else
For i = 0 To Me.GridView_productos.Rows.Count - 1
' con esto lo que hace es que cuando cambia un valor del textbox, llama a la
' funcion recalcular.El evento puede ser o el OnChange o el OnBlur


CType(Me.GridView_productos.Rows(i).Cells(3).FindC ontrol("txtAnimal"), TextBox).Attributes.Add("OnChange", "recalcular_totales('" & i & "');")
CType(Me.GridView_productos.Rows(i).Cells(4).FindC ontrol("txtRumiantes"), TextBox).Attributes.Add("OnChange", "recalcular_totales('" & i & "');")
CType(Me.GridView_productos.Rows(i).Cells(5).FindC ontrol("txtPorcino"), TextBox).Attributes.Add("OnChange", "recalcular_totales('" & i & "');")
CType(Me.GridView_productos.Rows(i).Cells(6).FindC ontrol("txtCebo"), TextBox).Attributes.Add("OnChange", "recalcular_totales('" & i & "');")

CType(Me.GridView_productos.Rows(i).Cells(3).FindC ontrol("txtAnimal"), TextBox).Attributes.Add("onkeypress", "FilterNumeric()")
CType(Me.GridView_productos.Rows(i).Cells(4).FindC ontrol("txtRumiantes"), TextBox).Attributes.Add("onkeypress", "FilterNumeric()")
CType(Me.GridView_productos.Rows(i).Cells(5).FindC ontrol("txtPorcino"), TextBox).Attributes.Add("onkeypress", "FilterNumeric()")
CType(Me.GridView_productos.Rows(i).Cells(6).FindC ontrol("txtCebo"), TextBox).Attributes.Add("onkeypress", "FilterNumeric()")

'Me.btnGuardar.Enabled = True

Next

End If



End Sub

function recalcular_totales(i)
{

var a;
var b=0;
var c=0;
var d=0;
var e=0;
var j="hola";
//esto se realiza porque el ctl del la caja de texto empiza en 02
i=parseInt(i)+2;
//si es menos de 10 lo que pasa es que pone 02,03...a partir de 10 es normal
if (i<10)
j="0"+i.toString();
else
j=i;

//recupero el valor del textbox,por medio del indice.
var datoa = document.getElementById("ctl00_ContentPlaceHolder1 _GridView_productos_ctl"+j+"_txtAnimal").value;
datoa=datoa.replace(",",".");
var a=parseFloat(datoa);

var datob=document.getElementById("ctl00_ContentPlaceH older1_GridView_productos_ctl"+j+"_txtRumiantes"). value;
datob=datob.replace(",",".");
var b= parseFloat(datob);

var datoc=document.getElementById("ctl00_ContentPlaceH older1_GridView_productos_ctl"+j+"_txtPorcino").va lue;
datoc=datoc.replace(",",".");
var c= parseFloat(datoc);

var datod=document.getElementById("ctl00_ContentPlaceH older1_GridView_productos_ctl"+j+"_txtCebo").value ;
datod=datod.replace(",",".");
var d=parseFloat(datod);

e=document.getElementById('ctl00_ContentPlaceHolde r1_GridView_productos_ctl'+j+'_txtTotal');



/*
a=parseFloat(document.getElementById("ctl00_Conten tPlaceHolder1_GridView_productos_ctl"+j+"_txtRumia ntes").value);
b=parseFloat(document.getElementById("ctl00_Conten tPlaceHolder1_GridView_productos_ctl"+j+"_txtRumia ntes").value);
c=parseFloat(document.getElementById("ctl00_Conten tPlaceHolder1_GridView_productos_ctl"+j+"_txtPorci no").value);
d=parseFloat(document.getElementById("ctl00_Conten tPlaceHolder1_GridView_productos_ctl"+j+"_txtCebo" ).value);
e=document.getElementById('ctl00_ContentPlaceHolde r1_GridView_productos_ctl'+j+'_txtTotal');
*/
//a=a.Replace('.',',');
//a = a.replace(/./g,",")

if (isNaN(a))
a=0;
if (isNaN(b))
b=0;
if (isNaN(c))
c=0;
if (isNaN(d))
d=0;

e.value=Math.round((parseFloat(a+b+c+d)*100))/100;
//e.value=(a+b+c+d);

//e.value=parseFloat(a+b+c+d);


a=a.toString().replace(".",",");
b=b.toString().replace(".",",");
c=c.toString().replace(".",",");
d=d.toString().replace(".",",");
e.value = e.value.toString().replace(".",",");

//viewstate("modificado")=1;
// aqui lo que hago es modificar el valor del campo oculto para que al darle al salir
// me pregunte si quiero guardar los cambios
document.getElementById('ctl00_ContentPlaceHolder1 _HiddenField_modificado').value=1;

}