none
GridView Mandar el numero de fila por medio de un evento JavasScript dentro del GridView RRS feed

  • Pregunta

  • Hola tengo un GridView con  checboxes que al ser seleccionados muestra u ocultan una caja de texto, ambos el  checkbox y la caja de texto están dentro del GridView

    Como puedo mandar la fila  por el vento onReferencia();?

    <asp:CheckBox CssClass="chkbox" ID="chkReferencia" onclick="onReferencia();" Checked='<%# Eval("ReferenciaExterna")%>' Text="Mod Referencia" runat="server" />

        <asp:GridView ID="GridViewLaboratorios"   CssClass="mGrid" 
                    runat="server"  AutoGenerateColumns="False" DataKeyNames="idOrden,idEstudioLaboratorio,idDeterminacion"
                    AlternatingRowStyle-CssClass="alt" SelectedRowStyle-BackColor="#FFFF99" Font-Names="Arial"  Font-Size="11pt" >
                       <AlternatingRowStyle BackColor="#C2D69B" />
                       <Columns>
                           <asp:BoundField DataField="NombreEstudio" ItemStyle-Width="300px" ReadOnly="true" HeaderText="Estudio" />
                           <asp:BoundField DataField="Determinacion" ItemStyle-Width="200px" ReadOnly="true" HeaderText="Determinación" />
                           <asp:TemplateField>
                               <ItemTemplate>
                           <asp:TextBox ID="txResultado" TextMode="MultiLine" Width="100%" Height="50px"
                           runat="server" Text='<%# Eval("Resultado").ToString().Trim()%>'></asp:TextBox>    
                               </ItemTemplate>
                               <ItemStyle Width="200px" />
                           </asp:TemplateField>
                           <asp:TemplateField>
                               <ItemTemplate>
                               <asp:CheckBox CssClass="chkbox" ID="chkRatificado"   runat="server"  Text="R"  Checked='<%# Eval("Ratificado")%>' /> 
                               </ItemTemplate>
                               <ItemStyle Width="60px" />
                           </asp:TemplateField>
                           <asp:TemplateField>
                               <ItemTemplate>
                               <div style=";">
                               <table>
                               <tr><td style='width:150px;'>
                               <asp:CheckBox CssClass="chkbox" ID="chkReferencia" onclick="onReferencia();" Checked='<%# Eval("ReferenciaExterna")%>' Text="Mod Referencia" runat="server" /></td></tr>
                               <tr><td>
                               <asp:TextBox ID="txReferenciaExterna" CssClass='<%# Eval("chkReferencia")%>' Width="100%" Text='<%# Eval("Referencia").ToString().Trim()%>' runat="server"></asp:TextBox></td></tr>
                               </table>
                               </div>   
                               </ItemTemplate>
                               <ItemStyle Width="200px" />
                           </asp:TemplateField>
                       </Columns>
                       <HeaderStyle BackColor="#C2D69B" ForeColor="#003300" />
                    <RowStyle Height="50px" />
                </asp:GridView>


    Marilú

    martes, 22 de septiembre de 2015 18:55

Respuestas

  • Ya lo estoy implementando pero no puedo obtener el  textbox  para mostrarlo y ocultarlo

    $("#<%=GridViewLaboratorios.ClientID%> [id*='chkReferencia']").change(function () {
                var tr = $(this).parent().parent();
                var refExterna = $("td:eq(4) [id*='txReferenciaExterna']", tr).html();
                if ($(this).is(':checked')) {
                    alert(refExterna);
                }
                else {
                }
            });

    ayudamee


    Marilú

    martes, 22 de septiembre de 2015 19:47
  • hola

    pero si estas tomando la row con la linea

    var tr = $(this).parent().parent();

    solo es cuestion de localizar dentro de ese tr

      $("[id*='txReferenciaExterna']", tr).hide();


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 22 de septiembre de 2015 20:02

Todas las respuestas

  • hola

    si a la funcion le envias el "this" estarias enviando el check que lanza la accion

    aunque yo recomendaria que uses jquery

    [ASP.NET] - GridView sumar columnas con jquery

    en el ejemplo veras como asignar evento a los controles dentro del grid

    se que en tu caso usas checkbox por eso usarias el selector

    :checkbox Selector

    analiza si te animas a usar jquery

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 22 de septiembre de 2015 19:23
  • Ya lo estoy implementando pero no puedo obtener el  textbox  para mostrarlo y ocultarlo

    $("#<%=GridViewLaboratorios.ClientID%> [id*='chkReferencia']").change(function () {
                var tr = $(this).parent().parent();
                var refExterna = $("td:eq(4) [id*='txReferenciaExterna']", tr).html();
                if ($(this).is(':checked')) {
                    alert(refExterna);
                }
                else {
                }
            });

    ayudamee


    Marilú

    martes, 22 de septiembre de 2015 19:47
  • hola

    pero si estas tomando la row con la linea

    var tr = $(this).parent().parent();

    solo es cuestion de localizar dentro de ese tr

      $("[id*='txReferenciaExterna']", tr).hide();


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 22 de septiembre de 2015 20:02
  • Gracias Leandro

    No me funcionaba por estar dentro de una tabla 

    <asp:TemplateField>
                               <ItemTemplate>
                               <asp:CheckBox CssClass="chkbox" ID="chkReferencia"  Checked='<%# Eval("ReferenciaExterna")%>' Text="Mod Referencia" runat="server" /><br />
                               <asp:TextBox ID="txReferenciaExterna" CssClass='txt <%# Eval("chkReferencia")%>' Width="100%" Text='<%# Eval("Referencia").ToString().Trim()%>' runat="server"></asp:TextBox>
                               <%--<table >
                               <tr><td >
                               <asp:CheckBox CssClass="chkbox" ID="chkReferencia"  Checked='<%# Eval("ReferenciaExterna")%>' Text="Mod Referencia" runat="server" /></td></tr>
                               <tr><td>
                               <asp:TextBox ID="txReferenciaExterna" CssClass='txt <%# Eval("chkReferencia")%>' Width="100%" Text='<%# Eval("Referencia").ToString().Trim()%>' runat="server"></asp:TextBox></td></tr>
                               </table>--%>
                               </ItemTemplate>
                               <ItemStyle Width="200px" />
                           </asp:TemplateField>


    Marilú

    martes, 22 de septiembre de 2015 22:27
  • Hola

    Sabes por que el  código deja de funcionar después de invocar un método del servidor?


    Marilú

    martes, 22 de septiembre de 2015 23:15