TextBox.Text changed with js don't keep value on postback
Hi,
I have a website on NET 2.0, there I have a textbox and after I change the text on it with a js function, try to save on the DB (I have to click on a imagebutton to save it), but on the postback the textbox.text property has the previous value.
I need some guidance on how to resolve this.
Here's my code:
JS inserted with a RegisterClientScriptBlock method: <-- This works fine
<script type="text/JavaScript">
function Calcular() {
if (!(isNaN(parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagSaldoPrevioPago').value)) && isNaN(parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagPagoActual').value)))) {
document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcSaldoPostPago').value = parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagSaldoPrevioPago').value) - parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagPagoActual').value);
} else {
document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcSaldoPostPago').value = '0.0';}
}
function ActualizaMonto() {
if (!(isNaN(parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagSaldoPrevioPago').value)) && isNaN(parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagPagoActual').value)))) {
document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagSaldoPrevioPago').value = parseFloat(document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagMontoTotal').value);
} else {
document.getElementById('ctl00_cphVentanillaAtencionMaster_txtdcPagMontoTotal').value = '0.0';}
}
</script>
on PostBack I try to do this:
oPagosBE.btPagActivo = True
oPagosBE.dcPagMontoTotal = Me.txtdcPagMontoTotal.Text
oPagosBE.dcPagPagoActual = Me.txtdcPagPagoActual.Text
oPagosBE.dcPagSaldoPrevioPago = Me.txtdcPagSaldoPrevioPago.Text <--- THIS VALUE POSTBACKS WITH THE INITIAL VALUE (BEFORE JS)
oPagosBE.dtPagFechaRegistro = IIf(IsDate(Me.txtdtPagFechaRegistro.Text.Trim), Me.txtdtPagFechaRegistro.Text.Trim, #1/1/1900#)
oPagosBE.vcPagUsuarioRegistrante = Session.Item("vcUsuCodigo")
bExito = bPagosBL.Insertar(oPagosBE)
Thanks
culebrin
Junior Poster in Training
62 posts since Aug 2007
Reputation Points: 10
Solved Threads: 1
I used the "Control.ClientID" to reference my control, but no luck...
and I can't use a client side control, because I need to access it in the server also...
I gave up, I know there's a solution out there, but I have no time... I'm on a schedule... Thanks a lot!! to all of you... !!
It can be done,
Please use this form,
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function setval() {
themsg = document.getElementById("<%=txtMessage.ClientID%>");
themsg.value="Hello World!";
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="txtMessage" runat="server" Text=""></asp:TextBox>
<asp:Button ID="btnSeeMessage" runat="server" Text="see" onclick="SeeMessage" />
</form>
<input id="cID" onclick="setval();" type="button" value="Set from client" />
</body>
</html>
From server side,
protected void SeeMessage(object sender, EventArgs e)
{
Response.Write(txtMessage.Text);
}
Please use <%=ServerControlName.ClientID%> everytime you wanna access a server control from client side.
culebrin
Junior Poster in Training
62 posts since Aug 2007
Reputation Points: 10
Solved Threads: 1