Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cazanova

[Resolvido] Problemas paginação Codebehind C#

Recommended Posts

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.