none
evitar postback en el gridview o que se cierre el gridview chid RRS feed

  • Pregunta

  • buenas a todos tengo el siguiente problema y talvez puedan ayudarme porfa ya que lo necesito bastante y no logro hacerlo.

    tengo el siguiente codigo. donde tengo gridview anidados o mejor dihco parent y child los dos gridview.

                        <asp:GridView ID="gvServicio" runat="server" CssClass="table table-striped table-bordered table-hover table-condensed" Width="100%" 
                            AutoGenerateColumns="False" DataKeyNames="Servicio_ID" DataSourceID="SqlDataSource1" 
                            AllowSorting="True" ShowHeaderWhenEmpty="True" EmptyDataText="No se encuentra ningun registro"
                            GridLines="None" >
                            <Columns>
                                <asp:Commandfield ShowEditButton="True" ButtonType="Image" EditImageUrl="~/imagenes/Edit.png" 
                                    CancelImageUrl="~/imagenes/delete85.png" UpdateImageUrl="~/imagenes/Update.png" 
                                    UpdateText="">
                                        <ControlStyle Height="20px" Width="20px" />
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:Commandfield>
                                <asp:CommandField ShowDeleteButton="True" ButtonType="Image" DeleteImageUrl="~/imagenes/DeleteRed.png" DeleteText="">
                                        <ControlStyle Height="20px" Width="20px"/>
                                    <ItemStyle HorizontalAlign="Center" />
                                </asp:CommandField>
                                <asp:TemplateField ItemStyle-HorizontalAlign="Center">
                                    <ItemTemplate>
                                        <a href="javascript:expandcollapse('div<%# Eval("Servicio_ID")%>', 'one');">
                                         <img src="imagenes/sumar.png" id="imgdiv<%# Eval("Servicio_ID")%>" 
                                             height="20" width="20" alt="cierre los detalles <%# Eval("Servicio_ID")%>"/>
                                            </a>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:TemplateField HeaderText="Servicio_ID" InsertVisible="False" SortExpression="Servicio_ID" Visible="False">
                                    <ItemTemplate>
                                        <asp:Label ID="Label1" runat="server" Text='<%# Bind("Servicio_ID") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
                                <asp:BoundField DataField="Servicio_Nombre" HeaderText="Nombre del Servicio" SortExpression="Servicio_Nombre" />
                                <asp:BoundField DataField="Servicio_Descripcion" HeaderText="Descripcion" SortExpression="Servicio_Descripcion" />
                                <asp:BoundField DataField="Servicio_Alias" HeaderText="Alias" SortExpression="Servicio_Alias" />
                                <asp:BoundField DataField="Servicio_IP" HeaderText="Dirección IP" SortExpression="Servicio_IP" />
                                <asp:BoundField DataField="Servicio_Dueño" HeaderText="Dueño del servicio" SortExpression="Servicio_Dueño" />
                                <asp:BoundField DataField="Servicio_Responsable" HeaderText="Responsable" SortExpression="Servicio_Responsable" />
                                <asp:TemplateField>
                                    <ItemTemplate>
    
                                        <tr>
                                            <td colspan="100%">
                                                <div id="div<%# Eval("Servicio_ID")%>" style="display:none; ; overflow:auto; left:15px; width:97%">
                                                <asp:GridView ID="gvEnti" runat="server" AutoGenerateColumns="false" 
                                                    CssClass="table table-striped table-bordered table-hover table-condensed"
                                                    DataSourceID="sqldsCliente" DataKeyNames="Catalogo_ID" EmptyDataText="No se encuentra ningun registro"
                                                    ShowHeaderWhenEmpty="true" ShowFooter="true" PageSize="5" AllowPaging="True" GridLines="None">
                                                    <Columns>
                                                        <asp:TemplateField ShowHeader="false">
                                                            <ItemTemplate>
                                                                <asp:ImageButton ID="imgbtndelete" runat="server" CausesValidation="false" CommandName="Delete" ImageUrl="~/imagenes/DeleteRed.png" Text="" />
                                                            </ItemTemplate>
                                                            <FooterTemplate>
                                                                <asp:Button ID="btnInsertar" runat="server" Text="Button" />
                                                                <%--<asp:LinkButton ID="lbeliminar" runat="server" CommandName="Insert" CausesValidation="false">Insertar</asp:LinkButton>--%>
                                                            </FooterTemplate>
                                                            <ControlStyle Height="20px" Width="20px"/>
                                                            <ItemStyle HorizontalAlign="Center" />
                                                        </asp:TemplateField>                                                  
    <%--                                                    <asp:CommandField ShowDeleteButton="True" ButtonType="Image" DeleteImageUrl="~/imagenes/DeleteRed.png" DeleteText="">
    
                                                        </asp:CommandField>--%>
    <%--                                                    <asp:TemplateField InsertVisible="false" SortExpression="Catalogo_ID" Visible="false">
                                                            <ItemTemplate>
                                                                <asp:Label ID="lblServi" runat="server" Text='<%# Bind("Catalogo_ID")%>'></asp:Label>
                                                            </ItemTemplate>
                                                        </asp:TemplateField>  --%>
                                                        <asp:TemplateField HeaderText="Cliente_Nombre" SortExpression="Entidad">
                                                            <ItemTemplate>
                                                                <asp:Label ID="lblnombre" runat="server" Text='<%# Bind("Cliente_Nombre")%>'></asp:Label>
                                                            </ItemTemplate>
                                                            <FooterTemplate>
                                                                <asp:DropDownList ID="ddlentidades" runat="server" CssClass="form-control" 
                                                                    DataSourceID="sqldsEntidad" DataTextField="Cliente_Nombre" DataValueField="Cliente_ID" 
                                                                    SelectedValue='<%# Bind("Cliente_ID")%>'></asp:DropDownList>
                                                                <asp:SqlDataSource ID="sqldsEntidad" runat="server" 
                                                                    ConnectionString="<%$ ConnectionStrings:DEIConnectionString %>"
                                                                     SelectCommand="SELECT * FROM [Entidad]"></asp:SqlDataSource>
                                                            </FooterTemplate>
                                                        </asp:TemplateField>                                                                                                                
                                                        <%--<asp:BoundField DataField="Cliente_Nombre" HeaderText="Nombre" SortExpression="Cliente_Nombre" />--%>
                                                        <%--<asp:BoundField DataField="Tipo_Descripcion" HeaderText="Tipo" SortExpression="Tipo_Descripcion" />--%>
                                                    </Columns>
                                                </asp:GridView> 
                                                <asp:SqlDataSource ID="sqldsCliente" runat="server" ConnectionString="<%$ ConnectionStrings:DEIConnectionString %>"
                                                    SelectCommand="select Catalogo_Servicio.Catalogo_ID,Entidad.Cliente_Nombre, Tipo_Entidad.Tipo_Descripcion
                                                    from Catalogo_Servicio
                                                    inner join Entidad on Catalogo_Servicio.Cliente_ID=Entidad.Cliente_ID
                                                    inner join Tipo_Entidad on Entidad.Tipo_ID=Tipo_Entidad.Tipo_ID
                                                    where Catalogo_Servicio.Servicio_ID=@IDD"
                                                     DeleteCommand="Delete from Catalogo_Servicio where Catalogo_ID=@Catalogo_ID">
                                                    <SelectParameters>
                                                        <asp:ControlParameter Name="IDD" ControlID="Label1" PropertyName="Text" />
                                                    </SelectParameters>
                                                </asp:SqlDataSource>
                                                </div>
    
                                            </td>
                                        </tr>
                                    </ItemTemplate>
                                </asp:TemplateField>
                            </Columns>
                        </asp:GridView>
                        <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DEIConnectionString %>" 
                            SelectCommand="SELECT Servicios_Web.* FROM Servicios_Web"
                            UpdateCommand="Update Servicios_Web set Servicio_Nombre=@Servicio_Nombre, Servicio_Descripcion=@Servicio_Descripcion,
                            Servicio_Alias = @Servicio_Alias, Servicio_IP=@Servicio_IP, Servicio_Dueño=@Servicio_Dueño, Servicio_Responsable=@Servicio_Responsable
                            where Servicio_ID=@Servicio_ID"
                            DeleteCommand="
                            Delete from Catalogo_Servicio where Servicio_ID=@Servicio_ID
                            Delete from Archivos_Servicios where Servicio_ID=@Servicio_ID
                            Delete From Servicios_Web where Servicio_ID=@Servicio_ID"
                            FilterExpression="
                            Servicio_Nombre like '%{0}%' 
                            or Servicio_Descripcion like '%{0}%'
                            or Servicio_Alias like '%{0}%'
                            or Servicio_IP like '%{0}%'
                            or Servicio_Dueño like '%{0}%'
                            or Servicio_Responsable like '%{0}%'
                            ">
                            <UpdateParameters>
                                <asp:Parameter Name="Servicio_Nombre" />
                                <asp:Parameter Name="Servicio_Descripcion" />
                                <asp:Parameter Name="Servicio_Alias" />
                                <asp:Parameter Name="Servicio_IP" />
                                <asp:Parameter Name="Servicio_Dueño" />
                                <asp:Parameter Name="Servicio_Responsable" />
                                <asp:Parameter Name="Servicio_ID" />
                            </UpdateParameters>
                            <FilterParameters>
                                <asp:ControlParameter ControlID="txtFiltro" PropertyName="Text" />
                            </FilterParameters>
                        </asp:SqlDataSource>


    los dos gridview funcionan excelente ambos me eliminan registros, pero mi problema es el siguiente, cuando deseo borrar un dato del gridview child o anidado, o eligir otra pagina de ese gridview se colapsa solo como si hiciera postback y no logro evitarlo. 

    en cualquier row pasa lo mismo

    doy click en el boton para ver detalles y se deseo eliminar un detalle me cierra el row de detalles 

    como logro evitar esto

    gracias y saludos


    keneth

    viernes, 19 de febrero de 2016 22:22

Respuestas

  • hola

    se colapsa porque los eventos realiza un post al evento recargando la pagina

    No se si usas quizas el control UpdatePanel, quizas si defines en el abarcando el gridinterno

    <asp:TemplateField> <ItemTemplate> <tr> <td colspan="100%"> <div id="div<%# Eval("Servicio_ID")%>" style="display:none; ; width:97%">

    <asp:UpdatePanel ...>

    <Template> <asp:GridView ID="gvEnti" runat="server" AutoGenerateColumns="false"

    quizas de esta forma una accion del grid hijo solo actualizara esa zona y no toda la pagina

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 20 de febrero de 2016 0:37

Todas las respuestas

  • hola

    se colapsa porque los eventos realiza un post al evento recargando la pagina

    No se si usas quizas el control UpdatePanel, quizas si defines en el abarcando el gridinterno

    <asp:TemplateField> <ItemTemplate> <tr> <td colspan="100%"> <div id="div<%# Eval("Servicio_ID")%>" style="display:none; ; width:97%">

    <asp:UpdatePanel ...>

    <Template> <asp:GridView ID="gvEnti" runat="server" AutoGenerateColumns="false"

    quizas de esta forma una accion del grid hijo solo actualizara esa zona y no toda la pagina

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    sábado, 20 de febrero de 2016 0:37
  • hola Leandro gracias por responder

    todo esta dentro de un updatepanel y coloque otr updatepanel de la manera que me indicas y sucede lo mismo, tanto quite el primero y deje el updatepanel interno e igual.

    pasa lo mismo siempre se colapsa el gridview hijo. no se que hacer y mantenerlos abiertos


    keneth

    sábado, 20 de febrero de 2016 22:01