none
Problema de Paginacion de ListView ASP.net C# RRS feed

  • Pregunta

  • Buenos dias a todos.

    en esta oportunidad, tengo un problema con la paginacion de mi ListView que se compone de uno principal y otro interno secundario. El ListView muestra todos los grupo de productos que esta en base de datos mientras que el ListView muestro la foto de los productos asociados al grupo.

    en el ListView que muestra los productos asociados al grupo tengo una paginación que no marcha muy bien, los botones de "Anterior" y "siguiente" no me funciona y los numero de pagina que hay entre los dos botones, tengo q darle click dos veces donde la primera hace como un postback y la segunda es la que hace el cambio.

    ahora muestro el HMTL.

    <asp:ListView ID="LvGrupo"
                    ItemPlaceholderID="PlaceHolder1"
                    OnItemDataBound="LvGrupo_ItemDataBound"
                    runat="server"
                    >
                    <LayoutTemplate>
                        <div class="row">

                            <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
                        </div>
                    </LayoutTemplate>
                    <ItemTemplate>

                        <div class="col-md-12 bg-primary">
                            <asp:Label Text='<%# Eval("grupo") %>' runat="server" ID="Grupo" />
                        </div>

                        <div class="col-md-12">
                            <asp:ListView ID="LvProductos"  ItemPlaceholderID="ItemGroupPlaceHolder" runat="server" GroupItemCount="3"  GroupPlaceholderID="groupPlaceholder">
                                <LayoutTemplate>

                                    <table class="table table-hover table-bordered  table-condensed table-responsive">
                                        <asp:PlaceHolder runat="server" ID="groupPlaceholder" />
                                    </table>


                                    <!-- Paginación -->
                                    <div class="row panel-footer" style="text-align: center">
                                        <asp:DataPager ID="DataPagerw" runat="server"  PagedControlID="LvProductos" PageSize="9">
                                            <Fields>
                                                <asp:NextPreviousPagerField ButtonType="Button" ButtonCssClass="btn-primary" ShowFirstPageButton="false" ShowNextPageButton="false"
                                                    ShowPreviousPageButton="true" />

                                                <asp:NumericPagerField NumericButtonCssClass="datapagerStyle" ButtonCount="5" ButtonType="Link" />

                                                <asp:NextPreviousPagerField ButtonType="Button" ButtonCssClass="btn-primary" ShowLastPageButton="false" ShowNextPageButton="true"
                                                    ShowPreviousPageButton="false" />
                                            </Fields>
                                        </asp:DataPager>
                                    </div>
                                    <!-- Paginación -->

                                </LayoutTemplate>
                                <GroupTemplate>
                                    <tr>
                                        <asp:PlaceHolder runat="server" ID="ItemGroupPlaceHolder" />
                                    </tr>
                                </GroupTemplate>
                                <ItemTemplate>
                                    <td id="Td1" align="center" runat="server">

                                        <div class='img-hover'>
                                            <asp:Image ID="Image1" CssClass="img-responsive" ImageUrl='<%# Eval("id","ProductoHandler.ashx?id={0}") %>' runat="server" Style="" />
                                            <div class='overlay'><a href='<%# Eval("id","ProductoHandler.ashx?id={0}")%>' class='fancybox' rel='fancybox' title='  <%# Eval("descripcion").ToString() %> ' onmouseover='this.title="";' onclick="this.title='<%# Eval("descripcion").ToString().Replace("\"","\\'") %>';"><%# Eval("nombre").ToString() %> </a></div>
                                        </div>

                                    </td>
                                </ItemTemplate>
                            </asp:ListView>

                        </div>



                    </ItemTemplate>

                    <EmptyDataTemplate>
                        <div class="alert alert-success">
                            <p>No se encuentran imagenes disponibles</p>
                        </div>
                    </EmptyDataTemplate>

                </asp:ListView>

    ahora muestro el código:

     protected void Page_Load(object sender, EventArgs e)
        {
            SectionTitle = "Catálogo";
            Container = "productos";

            int nroCategorias = 0;
            idCategoria = null;
            string grupo = null;

            //Se busca si se debe mostrar una categoria en particular
            if (Request.QueryString["idCategoria"] != null && (Request.QueryString["idCategoria"].ToString() != "0"))
            {
                idCategoria = Convert.ToInt32(Request.QueryString["idCategoria"]);
            }

            if (!Page.IsPostBack)
            {
     
                LlenarLvGrupo();
                
            }
        }


        public void LlenarLvGrupo()
        {
            LvGrupo.DataSource = ObtenerGrupoCategoria(null, idCategoria.ToString());
            LvGrupo.DataBind();
        }


        protected void LvGrupo_ItemDataBound(object sender, ListViewItemEventArgs e)
        {
            ListView Lproducto = (ListView)e.Item.FindControl("LvProductos");
            Label LbGrupo = (Label)e.Item.FindControl("Grupo");
            DataTable dt = new DataTable();
            dt = ObtenerProducto(null, LbGrupo.Text, idCategoria.ToString());
            Lproducto.DataSource = dt;
            Lproducto.DataBind();
            //Session["Producto"] = dt;
            dt.Dispose();
        }

    De ante mano les agradesco la ayuda que me puedan dar.

    
    • Editado jesusgomes lunes, 9 de mayo de 2016 19:20
    lunes, 9 de mayo de 2016 18:58