Ordinamento ed ordinamento

mercoledì 16 luglio 2008 - 11.30

squilibrio Profilo | Expert

Secondo voi dove sbaglio in questa gestione di ordinamento + paginazione??

Con questo codice, tutto OK l'ordinamento ma passando alle pagine successive la griglia è vuota


protected void gwElenco_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gwElenco.DataSource = SortDataTable(gwElenco.DataSource as DataTable, true);
gwElenco.PageIndex = e.NewPageIndex;
//BindGrid();
gwElenco.DataBind();
}



nel bindgrid()

if (dsElenco.Tables[0].Rows.Count >= 0)
{
lblTotale.Text = "Totale elementi: " + dsElenco.Tables[0].Rows.Count.ToString();
gwElenco.DataSource = dsElenco.Tables[0];
gwElenco.DataBind();
}





#region Gestione ordinamento della griglia

private string GridViewSortDirection
{
get { return ViewState["SortDirection"] as string ?? "ASC"; }
set { ViewState["SortDirection"] = value; }
}

private string GridViewSortExpression
{
get { return ViewState["SortExpression"] as string ?? string.Empty; }
set { ViewState["SortExpression"] = value; }
}

private string GetSortDirection()
{
switch (GridViewSortDirection)
{
case "ASC":
GridViewSortDirection = "DESC";
break;

case "DESC":
GridViewSortDirection = "ASC";
break;
}
return GridViewSortDirection;
}





protected DataView SortDataTable(DataTable dataTable, bool isPageIndexChanging)
{
if (dataTable != null)
{
DataView dataView = new DataView(dataTable);
if (GridViewSortExpression != string.Empty)
{
if (isPageIndexChanging)
{
dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GridViewSortDirection);
}
else
{
dataView.Sort = string.Format("{0} {1}", GridViewSortExpression, GetSortDirection());
}
}
return dataView;
}
else
{
return new DataView();
}
}




protected void gwElenco_Sorting(object sender, GridViewSortEventArgs e)
{
BindGrid(Tipo);
GridViewSortExpression = e.SortExpression;
int pageIndex = gwElenco.PageIndex;
gwElenco.DataSource = SortDataTable(gwElenco.DataSource as DataTable, false);
gwElenco.DataBind();
gwElenco.PageIndex = pageIndex;
}


Grazie

rossimarko Profilo | Guru

>protected void gwElenco_PageIndexChanging(object sender, GridViewPageEventArgs
>e)
> {
>gwElenco.DataSource = SortDataTable(gwElenco.DataSource as DataTable, true);

Ciao,

nel pezzo di codice riportato sopra prova a verificare se in debug la proprietà DataSource è popolata correttamente.

Se è null dovrai modificarla e far caricare i dati dal dataset come nel BindGrid.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5