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;
}