Problema con pagina aspx y funcion javascript

Iniciado por Nabucodonosor, 13 Noviembre 2010, 01:36 AM

0 Miembros y 2 Visitantes están viendo este tema.

Nabucodonosor

Saludos,

Tengo una pagina "CD.aspx" que muestra una tabla de productos (codigo, descripcion, cantidad, precio e importe) y un boton "Agregar Item" que llama a una funcion javascript para aumentar una fila a la tabla, la funcion javascript la he probado con una pagina html plana y funciona de mil maravillas pero ahora estoy desarrollando en visual studio y cuando le doy a "View in browser" para probar el mismo boton (pero de la paleta de visual studio standar controls) le doy click e intenta aumentar una fila, de hecho, logra poner la mitad de la fila y luego desaparece no se si esto es problema del .net o del tamanio de los divs o del table la verdad no me explico, espero puedan ayudarme a resolver este problema, a continuacion el codigo de la pagina:


<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CD.aspx.cs" Inherits="WAPOS.Formularios.wfComprobante" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Ventas</title>
    <script type="text/javascript" src="../../Scripts/jquery-1.4.3.js"></script>
    <script type="text/javascript" src="../../UserScripts/libreriajs-1.0.js"></script>
</head>
<body style="height: 421px">
    <form id="frmCD" runat="server" method="post" name="frmComprobante"
    title="Comprobante">
    <div align="left" style="width: 650px; height: 303px;">   
      <center>
        <asp:Label ID="lbCDTitulo" runat="server" Text="Venta"></asp:Label>
      </center>
      <table id="tblCDDetalle" align="left"">
        <tr>
          <td align="left" colspan="7">
            <asp:Label ID="lbCDCodigo" runat="server" Text="Codigo"
              style="text-align: left"></asp:Label>
            <asp:TextBox ID="tbCDCodigo" runat="server" Width="150px"
              ReadOnly="True">Automatico</asp:TextBox>
          </td>
        </tr>
        <tr>
          <td align="left" colspan="7">
            <asp:Label ID="lbCDCodigoComprobante" runat="server"
              Text="Codigo de Comprobante"></asp:Label>
            <asp:TextBox ID="tbCDCodigoComprobante" runat="server"></asp:TextBox>
          </td>
        </tr>
        <tr>
          <td align="center" colspan="7">
            <asp:Button ID="btnCDRegistrar" runat="server" onclick="Button1_Click"
              Text="Registrar" />
            <asp:Button ID="btnCDCancelar" runat="server" Text="Cancelar"
              onclick="Button2_Click" />
            <asp:Button ID="btnCDAItem" runat="server"
              Text="Agregar Item" />
            <asp:Button ID="btnCDQItemT" runat="server"
              Text="Quitar Todo" />
          </td>
        </tr>
        <tr>
          <td align="center" width="5%">
            <asp:Label ID="lbCDQD" runat="server" Text="X" alt="Q Item"></asp:Label>
          </td>
          <td align="center" width="10%">
            <asp:Label ID="lbCDItemD" runat="server" Text="Item"></asp:Label>
          </td>
          <td align="center"  width="15%">
            <asp:Label ID="lbCDCodigoD" runat="server" Text="Codigo"></asp:Label>
          </td>
          <td align="center" width="35%">
            <asp:Label ID="lcCDDescripcionD" runat="server" style="text-align: left"
              Text="Descripcion"></asp:Label>
          </td>
          <td align="center" width="10%">
            <asp:Label ID="lbCDCantidadD" runat="server" Text="Cantidad"></asp:Label>
          </td>
          <td align="right"  width="15%">
            <asp:Label ID="lbCDPrecioUD" runat="server" Text="Precio U."></asp:Label>
          </td>
          <td align="right" width="10%">
            <asp:Label ID="lcCDImporteD" runat="server" Text="Importe"></asp:Label>
          </td>
        </tr>
        </table>
    </div>
    </form>
</body>
</html>


a continuacion la funcion javascript q aumenta la fila:


/**
* variable global que cuenta las filas de detalle de una tabla tipo maestro-detalle
*/
var cf = 1;
/**
* este metodo agrega una fila con la misma cantidad de columnas de la ultima fila
* para el detalle de la venta actual
*/
$(document).ready(function () {
  $("#btnCDAItem").click(function () {
    alert("Agregando fila");
    var n = $('tr:last td', $("#tblCDDetalle")).length;
    var fila = '<tr>';
    var valorColumna = '<td ID="tdCDQItem' + cf + '" onclick="eliminarFilayRenumerar($(this), \'tblCDDetalle\', 2, 1)">X</td>';
    fila += valorColumna;
    for (var i = 1; i < n; i++) {
      //fila += '<td id=' + cf + '-' + i +'0>' + cf + '</td>';
      fila += '<td>.</td>';
    }
    fila += '</tr>';
    cf++;
    $("#tblCDDetalle").append(fila);
    alert("Agregacion terminada");
  })
});



Toda sugerencia, critica y ayuda es bienvenida  ;)
Ser hacker no es un delito es un honor.
y para mi sera un honor llegar a ser uno :P

Nabucodonosor

Ya que me han inundado de respuestas, aca tengo la solucion que encontre despues de mucha investigacion y ayuda de colegas:
Resulta que hay que anular el submit del formulario y cuando se quiera hacer submit realmente lo haremos con una funcion javascript:form.submit(). Debemos de aumentar onsubmit="return false;" como atributo del form

En pocas palabras cambiar esto:

<form id="frmCD" runat="server" method="post" name="frmComprobante"
    title="Comprobante">

por esto:

<form id="frmCD" runat="server" method="post" name="frmComprobante"
    title="Comprobante" onsubmit="return false;">


Gracias por nada  >:D
Ser hacker no es un delito es un honor.
y para mi sera un honor llegar a ser uno :P