Cazanova 0 Denunciar post Postado Janeiro 19, 2009 A paginação é escrita perfeitamente, mas a navegação não funciona e não encontro onde está o erro. Se puderem me ajudar. List.aspx <asp:GridView runat="server" PageSize="2" AllowPaging="true" ID="gvSession" OnRowCommand="List_Commands" CssClass="table-list" AutoGenerateColumns="false" AlternatingRowStyle-CssClass="dark" OnDataBound="gvSession_OnDataBound" OnRowDataBound="gvSession_OnRowDataBound" OnPageIndexChanging="gvSession_OnPageIndexChanging" EnableViewState="true"> <Columns> <asp:TemplateField> <HeaderTemplate> <input type="checkbox" /> </HeaderTemplate> <ItemTemplate> <asp:CheckBox ID="chbSelect" runat="server" /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Nome da Sessão"> <ItemTemplate> <asp:Label ID="lblSessionName" runat="server"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Sub-Sessões"> <ItemTemplate> <asp:PlaceHolder ID="phSubSessions" runat="server"></asp:PlaceHolder> <asp:Label ID="lblSubSessions" runat="server"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Data de Criação"> <ItemTemplate> <asp:Label ID="lblDateRegister" runat="server"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Tipo de Sessão"> <ItemTemplate> <asp:Label ID="lblSessionType" runat="server"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderStyle-Width="120" HeaderText="Ações"> <ItemTemplate> <asp:ImageButton ID="ibView" CommandName="CmsView" ImageUrl="../../app_image/icon/btn-view.png" runat="server" /> <asp:ImageButton ID="ibEdit" CommandName="CmsEdit" ImageUrl="../../app_image/icon/btn-edit.png" runat="server" /> <asp:ImageButton ID="ibDelete" OnClientClick="java script: return confirm('Tem certeza que deseja deletar este item?');" CommandName="CmsDelete" ImageUrl="../../app_image/icon/btn-delete.png" runat="server" /> <asp:ImageButton ID="ibApprove" OnCommand="List_Commands" CommandName="Approve" ImageUrl="../../app_image/icon/btn-approve.png" runat="server" /> </ItemTemplate> </asp:TemplateField> </Columns> <PagerTemplate> <div class="pagination"> <div class="float-left"> <asp:ImageButton ID="ImageButton1" ImageUrl="../../app_image/btn/btn-excluir-selecionados.png" runat="server" /> <asp:ImageButton ID="ImageButton2" ImageUrl="../../app_image/btn/btn-aprovar.png" runat="server" /> </div> <div class="float-right"> <asp:PlaceHolder ID="PagingNum" runat="server"></asp:PlaceHolder> </div> </div> </PagerTemplate> </asp:GridView> List.aspx.cs protected void gvSession_OnDataBound(object sender, EventArgs e) { GridViewRow gvr = gvSession.BottomPagerRow; if (gvr == null) return; PlaceHolder phPager = gvSession.BottomPagerRow.FindControl("PagingNum") as PlaceHolder; if (phPager != null) { if (gvSession.PageIndex > 0) { phPager.Controls.Add(new LiteralControl("<div class='float-left'>")); ImageButton btnPage = new ImageButton(); btnPage.ImageUrl = "~/app_image/btn/btn-voltar.png"; btnPage.CommandName = "Page"; btnPage.CommandArgument = "Prev"; btnPage.ToolTip = "Página Anterior"; phPager.Controls.Add(btnPage); phPager.Controls.Add(new LiteralControl("</div>")); } phPager.Controls.Add(new LiteralControl("<div class='content'>")); for (int i = 0; i < gvSession.PageCount; i++) { int PageNumber = i + 1; if (i == gvSession.PageIndex) { Label lbPage = new Label(); lbPage.Text = "[" + PageNumber.ToString() + "]"; lbPage.CssClass = "page-index"; phPager.Controls.Add(lbPage); } else { LinkButton lbPage = new LinkButton(); lbPage.CommandName = "Page"; lbPage.CommandArgument = PageNumber.ToString(); lbPage.ToolTip = "Ir para a página " + PageNumber.ToString(); lbPage.Text = PageNumber.ToString(); phPager.Controls.Add(lbPage); } } phPager.Controls.Add(new LiteralControl("</div>")); if ((gvSession.PageIndex+1) < gvSession.PageCount && gvSession.PageCount > 1) { phPager.Controls.Add(new LiteralControl("<div class='float-left'>")); ImageButton btnPage = new ImageButton(); btnPage.ImageUrl = "~/app_image/btn/btn-avancar.png"; btnPage.CommandName = "Page"; btnPage.CommandArgument = "Next"; btnPage.ToolTip = "Próxima Página"; phPager.Controls.Add(btnPage); phPager.Controls.Add(new LiteralControl("</div>")); } } } protected void gvSession_OnPageIndexChanging(Object sender, GridViewPageEventArgs e) { gvSession.PageIndex = e.NewPageIndex; } protected void binder() { gvSession.DataSource = CmsSession.Select(LoggedUser.Client); gvSession.DataBind(); } protected void Page_Load(object sender, EventArgs e) { VerifyLogin(); } protected override void OnLoadComplete(EventArgs e) { base.OnLoadComplete(e); binder(); } Compartilhar este post Link para o post Compartilhar em outros sites
quintelab 91 Denunciar post Postado Janeiro 20, 2009 Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET » Web Applications Depois de definir o novo index no evento PageIndexChanging você deve dar um DataBind na sua grid para carrega-la novamente. E normalmente utilizamos o evento PageIndexChanging e não o OnPageIndexChanging. Mas tente o seguinte: protected void gvSession_OnPageIndexChanging(Object sender, GridViewPageEventArgs e) { gvSession.PageIndex = e.NewPageIndex; gvSession.DataBind(); } Ótimo artigo sobre gridview: http://www.linhadecodigo.com.br/Artigo.aspx?id=788&pag=5 Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
Cazanova 0 Denunciar post Postado Janeiro 28, 2009 Resolvido http://forum.imasters.com.br/index.php?showuser=26945 Compartilhar este post Link para o post Compartilhar em outros sites