Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

RicardoCostaTW

Sorting GridView não funciona

Mensagens Recomendadas

RicardoCostaTW

Boas Pessoal,

Sou novo nesta linguagem(3 dias), e estava a tentar fazer um sorting a uma gridview que tenho. Tentei ver este tutorial http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.sorting.aspx e aplicar, mas não acontece nada.

Este é o código da minha gridview:

<asp:UpdatePanel runat="server" ID="updGenericTable" UpdateMode="Conditional">
 <ContentTemplate>
	 <asp:GridView ID="GridViewVeiculos" DataKeyNames="id" runat="server" AllowSorting="True" OnSorting="GridViewVeiculos_Sorting" AutoGenerateColumns="False" onselectedIndexChanged="GridViewVeiculos_SelectedIndexChanged" OnRowCommand="GridViewVeiculos_RowCommand">
		 <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
	 <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
	 <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
	 <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
	 <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
	 <AlternatingRowStyle BackColor="#DCDCDC" />
		 <Columns>

			 <asp:BoundField DataField="marcas" sortexpression="Name" HeaderText="Marcas" />
			 <asp:BoundField DataField="Cor" HeaderText="Cor" Visible="true" sortexpression="Cor" />
			 <asp:CommandField SelectText="Cor" ShowSelectButton="True" />
			 <asp:ButtonField CommandName="Apagar" Text="Apagar" />
			 <asp:ButtonField CommandName="Editar" Text="Editar" />

		 </Columns>
	 </asp:GridView>
 </ContentTemplate>
</asp:UpdatePanel>

No meu codebehind:

protected void GridViewVeiculos_Sorting(object sender, GridViewSortEventArgs e)
 {
	 System.Data.DataTable dt = Session["TaskTable"] as System.Data.DataTable;
	 if (dt != null)
	 {
		 //Sort the data.
		 dt.DefaultView.Sort = e.SortExpression + " " + GetSortDirection(e.SortExpression);
		 GridViewVeiculos.DataSource = Session["TaskTable"];
		 GridViewVeiculos.DataBind();
		 updGenericTable.Update();
	 }
 }
 private string GetSortDirection(string column)
 {
	 // By default, set the sort direction to ascending.
	 string sortDirection = "ASC";
	 // Retrieve the last column that was sorted.
	 string sortExpression = ViewState["SortExpression"] as string;
	 if (sortExpression != null)
	 {
		 // Check if the same column is being sorted.
		 // Otherwise, the default value can be returned.
		 if (sortExpression == column)
		 {
			 string lastDirection = ViewState["SortDirection"] as string;
			 if ((lastDirection != null) && (lastDirection == "ASC"))
			 {
				 sortDirection = "DESC";
			 }
		 }
	 }
	 // Save new values in ViewState.
	 ViewState["SortDirection"] = sortDirection;
	 ViewState["SortExpression"] = column;
	 return sortDirection;
 }

Estou a fazer alguma coisa mal?

:confused:

Editado por RicardoCostaTW

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.