none
Obtener valor de celda de Componentart: Grid RRS feed

  • Pregunta

  • Hola, todo bien,

    Comento brevemente lo que sucede.

    Tengo un ComponentArt:Grid en un control .ascx, este control es cargado por una pagina .aspx, necesito obtener de la fila seleccionada de la grilla el valor de una de sus celdas, para que en funcion de este valor habilitar o no un boton.

    El problema es que necesito hacer eso del lado del cliente, sin hace un postback.

    Estaba probando con Jquery, y llegue hasta lo siguente:

    <script type="text/javascript">
        var gridClientId = '<%=gdLots.ClientID %>';
    
        $(document).ready(function () {
    
            var a = $('#' + gridClientId + ' tbody tr:eq(0) td');
            alert(a.html());
        }); 
    </script>

    Este codigo devuelve lo siguiente:

    <div id="ctl00_ContentPlaceHolder1_WizardRequestTracking_RequestTrackingData_LotControl_LotInfoControl_gdLots_dom" style="overflow-x: auto; overflow-y: hidden; vertical-align: top; height: 290px; width: 900px;">
    &nbsp;
    </div>

    Aca esta lo raro, ya que si inspecciono el elemento desde el navegador, dentro de este div, esta la tabla con las filas a las cuales quiero acceder, para luego agregarle un evento click a cada una de esas filas, para hacer lo del boton.

    Alguien sabes porque ocurre esto?

    Hay otra forma de hacer esto sin hacer un posback?

    Muchas gracias.

    Saludos.


     


    Sebastian Lopez.

    lunes, 29 de diciembre de 2014 14:53

Todas las respuestas

  • Bueno, le cuento que una alerta no puede desplegar más de 1024 carácteres, así que no se fíe demasiado en lo que ve en un alert() si es algo muy grande.

    El script que veo ahí, ¿lo instala el ascx?  ¿Es gdLots el nombre de la grilla o del user control?

    En todo caso, no veo muy bien la lógica del script.  ¿Por qué anda buscando la primera celda de la primera fila?  Yo haría un jQuery script que instale un onclick en cada fila, no solamente la primera, y que habilite el botón según el valor de la columna específica.

    var gridID = '#<%= gdLots.ClientID %>';
    
    $(function()
    {
        var boton = $('#idDelBoton');
        $(gridID).find('tbody tr').click(function(ev)
        {
            var row = $(this);
            //Ubique la celda que quiere y obtenga su valor.
            var v = row.find('td').eq(<número de columna>).val();
            if (v == <a lo que sea que busca>)
            {
                //Habilite el botón.
                boton.removeAttr('disabled');
            }
            else
            {
                //Deshabilite el botón.
                boton.attr('disabled', 'disabled');
            }
        });
    });


    Jose R. MCP
    Code Samples

    lunes, 29 de diciembre de 2014 15:25
    Moderador