none
Obtener el valor de un registro en una tabla con jquery al presionar link

    Question

  • Hola

    Lo que pasa es que tengo una tabla html a la cual alimento con un IEnumerable al final de la tabla cree una columna llamada detalle, esa columna en cada registro tiene un link <a></a>  que cuando le das click llama a una función de jquery, lo que quiero es saber como determinar, cuando le des click a ver detalle, el registro que le diste click tomar el "numerodefactura" para enviarlo por AJAX.  La columna detalle esta definida de la siguiente manera.

     <td><a onclick="verdetalle();" href="#">Ver detalle</a></td>

    Mi función jquery es la siguiente, ojo esta solo llama el detalle de la factura 1 porque ese es el valor que le paso.

    <script type="text/javascript">
            function verdetalle() {
                $.ajax({
                    url: '<%:Url.Content("~/Reporte/DetalleFactura")%>',
                    cache: false,
                    type: "GET",
                    dataType: "html",
                    data: 'idf=' + '1',
                    success: function (html) {
                        $.colorbox({ html: html });
                    }
                });
            };
        </script>

    Este codigo funciona de las mil maravillas pero solo con la factura 1.

    Mi pregunta es como hago que cuando des click a ver detalle determinar de que registro fue y obtener el valor de "numerodefactura".

    Gracias de antemano... :p


    R.O. Santo Domingo República Dominicana


    • Edited by Ovegeton Friday, March 30, 2012 1:53 AM
    Friday, March 30, 2012 1:48 AM

Answers

  • Hola ya resolví el problema... :p

    Lo que hice fue simple pero funcional en la función "verdetalle" le agregue un parámetro y en cada link de ver detalle le pase el idfactura, de la siguiente manera.

    View

    <table>
        <tr id="cabecerat">
            <td class="sizebecera">Numero de factura</td>
            <td class="sizebecera">Fecha</td>
            <td class="sizebecera">Monto</td>
            <td class="sizebecera">Matricula</td>
            <td class="sizebecera">Estado</td>
            <td class="sizebecera">Detalle</td>
        </tr>
        <%if (Model != null)
          {%>
          <% string estado = string.Empty; %>
        <%foreach (var item in Model){%>    
        <%if((bool)item.estado){estado="Saldada";}else{estado="Pendiente";}%> 
             <tr id="contenidot">
                <td class="idfac"><%: item.idfactura %></td>
                <td><%: item.fecha.Value.ToShortDateString() %></td>
                <td><%: item.monto = decimal.Round((decimal)item.monto, 0) %></td>
                <td><%: item.matricula %></td>
                <td><%: estado %></td>
                <td><a onclick="verdetalle(<%: item.idfactura %>);" href="#">Ver detalle</a></td>
             </tr>  
          <% } %>
            <% } %>
        </table> 

    Script

        <script type="text/javascript">
            function verdetalle(id) {
                $.ajax({
                    url: '<%:Url.Content("~/Reporte/DetalleFactura")%>',
                    cache: false,
                    type: "GET",
                    dataType: "html",
                    data: 'idf=' + id,
                    success: function (html) {
                        $.colorbox({ html: html });
                    }
                });
            };
        </script>

    De esta forma cada link de verdetalle sabe su idfactura correspondiente... :p


    R.O. Santo Domingo República Dominicana


    • Marked as answer by Ovegeton Friday, March 30, 2012 5:48 AM
    • Edited by Ovegeton Friday, March 30, 2012 5:48 AM
    Friday, March 30, 2012 5:47 AM

All replies

  • Hola ya resolví el problema... :p

    Lo que hice fue simple pero funcional en la función "verdetalle" le agregue un parámetro y en cada link de ver detalle le pase el idfactura, de la siguiente manera.

    View

    <table>
        <tr id="cabecerat">
            <td class="sizebecera">Numero de factura</td>
            <td class="sizebecera">Fecha</td>
            <td class="sizebecera">Monto</td>
            <td class="sizebecera">Matricula</td>
            <td class="sizebecera">Estado</td>
            <td class="sizebecera">Detalle</td>
        </tr>
        <%if (Model != null)
          {%>
          <% string estado = string.Empty; %>
        <%foreach (var item in Model){%>    
        <%if((bool)item.estado){estado="Saldada";}else{estado="Pendiente";}%> 
             <tr id="contenidot">
                <td class="idfac"><%: item.idfactura %></td>
                <td><%: item.fecha.Value.ToShortDateString() %></td>
                <td><%: item.monto = decimal.Round((decimal)item.monto, 0) %></td>
                <td><%: item.matricula %></td>
                <td><%: estado %></td>
                <td><a onclick="verdetalle(<%: item.idfactura %>);" href="#">Ver detalle</a></td>
             </tr>  
          <% } %>
            <% } %>
        </table> 

    Script

        <script type="text/javascript">
            function verdetalle(id) {
                $.ajax({
                    url: '<%:Url.Content("~/Reporte/DetalleFactura")%>',
                    cache: false,
                    type: "GET",
                    dataType: "html",
                    data: 'idf=' + id,
                    success: function (html) {
                        $.colorbox({ html: html });
                    }
                });
            };
        </script>

    De esta forma cada link de verdetalle sabe su idfactura correspondiente... :p


    R.O. Santo Domingo República Dominicana


    • Marked as answer by Ovegeton Friday, March 30, 2012 5:48 AM
    • Edited by Ovegeton Friday, March 30, 2012 5:48 AM
    Friday, March 30, 2012 5:47 AM
  • Hola, aunque ya lo hayas resuelto te planteo otra alternativa,

    Podrías asignar el método click directamente a través de Jquery y asignar al tag "a" algun atributo que sea el valor del ID...


    Javier Torrecilla
    Para el correcto funcionamiento, y que otros usuarios se puedan beneficiar de la solucion de esta pregunta por favor marca las respuestas que te hayan ayudado como "Respuesta".
    Si la respuesta te ha sido util Votala.
    Mi Blog: Jtorrecilla
    Enlace a Faq de Winforms en Ingles Muy bueno
    TabControl con Mejoras

    Friday, March 30, 2012 6:28 AM
  • Gracias luego de que lo resolví también pensé en esa solución... :p

    R.O. Santo Domingo República Dominicana

    Friday, March 30, 2012 3:34 PM