Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Sorting Gridview
martedì 05 settembre 2006 - 10.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
gandalf_03_75
Profilo
| Junior Member
68
messaggi | Data Invio:
mar 5 set 2006 - 10:48
Rieccomi di nuovo e stavolta e' per un problema sul sorting di un gridview.
Usando il codice sotto riporato ottengo un errore javascript e nn riesco a risolvere.
Posto il codice
-----------------------------------------------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
public partial class _Default : System.Web.UI.Page
{
private const string ASCENDING = " ASC";
private const string DESCENDING = " DESC";
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindData();
}
}
private void BindData()
{
Connect cn = new Connect();
cn.OpenConnection();
DataSet ds;
ds = cn.GetDataset("Select IdFilm,Titolo from Films Order by Titolo");
grdvDVD.DataSource = ds;
grdvDVD.DataBind();
}
protected void grdvDVD_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
TableCellCollection cells = e.Row.Cells;
foreach (TableCell cell in cells)
{
cell.Text = Server.HtmlDecode(GenerateScript(cell.Text, grdvDVD));
}
}
}
private string GenerateScript(string columnName, GridView gv)
{
string optionalParam = "Sort$" + columnName;
StringBuilder sb = new StringBuilder();
sb.Append("<a href=\"");
sb.Append("javascript:");
sb.Append(ClientScript.GetPostBackEventReference(gv, optionalParam, false));
sb.Append("\">");
sb.Append(columnName);
sb.Append("</a>");
return sb.ToString();
}
protected void grdvDVD_Sorting(object sender, GridViewSortEventArgs e)
{
}
protected void grdvDVD_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
TableCellCollection cells = e.Row.Cells;
foreach (TableCell cell in cells)
{
GenerateScript(cell.Text, grdvDVD);
}
}
}
}
-----------------------------------------------------------------------------------------------------------------
Grazie
Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 6 set 2006 - 23:50
>Rieccomi di nuovo e stavolta e' per un problema sul sorting di
>un gridview.
>Usando il codice sotto riporato ottengo un errore javascript
>e nn riesco a risolvere.
Evidentemente lo script che generi dinamicamente è errato.
Una domanda, cosa dovrebbe fare scusa quel Javascript ?
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
gandalf_03_75
Profilo
| Junior Member
68
messaggi | Data Invio:
gio 7 set 2006 - 09:29
Ciao Brain veramente quella parte di codice l'ho trovata girando per internet e la davano per funzionante ma a me nn fa assolutamente nulla.
Grazie per l'intervento
Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 7 set 2006 - 09:37
>Ciao Brain veramente quella parte di codice l'ho trovata girando
>per internet e la davano per funzionante ma a me nn fa assolutamente
>nulla.
Ok ma cosa dovrebbe fare ?
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
gandalf_03_75
Profilo
| Junior Member
68
messaggi | Data Invio:
gio 7 set 2006 - 12:24
Prova a dare un'occhiata qui
http://geekswithblogs.net/azamsharp/archive/2006/04/28/76634.aspx
Ciao
Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 7 set 2006 - 14:16
>Prova a dare un'occhiata qui
Non ho proprio idea di cosa faccia. A me parte che ti consenta di ordinare le colonne di una Gridview, ma la Gridvew 2.0 implementa già nativamente il reording dei valori di tutte le colonne e lo fa inoltre in modo egregio, quindi non saprei a cosa possa servire questo codice.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
gandalf_03_75
Profilo
| Junior Member
68
messaggi | Data Invio:
gio 7 set 2006 - 14:31
Brain alla fine ho optato per quest'altra soluzione che funziona bene
----------------------------------------------------------------------------------------------------------------
public SortDirection GridViewSortDirection
{
get
{
if (ViewState["sortDirection"] == null)
ViewState["sortDirection"] = SortDirection.Ascending;
return (SortDirection) ViewState["sortDirection"];
}
set { ViewState["sortDirection"] = value; }
}
protected void GridView1_Sorting(object sender, GridViewSortEventArgs e)
{
string sortExpression = e.SortExpression;
if (GridViewSortDirection == SortDirection.Ascending)
{
GridViewSortDirection = SortDirection.Descending;
SortGridView(sortExpression, DESCENDING);
}
else
{
GridViewSortDirection = SortDirection.Ascending;
SortGridView(sortExpression, ASCENDING);
}
}
private void SortGridView(string sortExpression,string direction)
{
// You can cache the DataTable for improving performance
DataTable dt = GetData().Tables[0];
DataView dv = new DataView(dt);
dv.Sort = sortExpression + direction;
GridView1.DataSource = dv;
GridView1.DataBind();
}
----------------------------------------------------------------------------------------------------------------
Spero che possa essere di aiuto a qualcuno.
Grazie ancora per essere intervenuto
Per i paurosi il futuro resterà sconosciuto, per i deboli sarà irraggiungibile, per gli incoscienti offrirà nuove opportunità.
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
gio 7 set 2006 - 18:49
>Brain alla fine ho optato per quest'altra soluzione che funziona
>bene
Appunto già meglio, la Gridview è stata creata per funzionare così. Anche se in realtà ripeto, il Sorting è già pronto out of the box, non bisognerebbe scrivere una linea di codice facendo uso di un AccessDataSource o SqlDataSource. Basta impostare l'AllowSorting a true e già funziona.
Ciao
David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/
kontimatteo
Profilo
| Newbie
12
messaggi | Data Invio:
mar 4 dic 2007 - 09:36
Io ho il problema che il sorting automatico del signor Bill funziona, ma funziona sull' sqldatasource che carico all'avvio della pagina e non su un sqlsatasource impostato da me... Mi spiego se ad un certo punto del codice io decido di imporre delle clausule where alla mia select e quindi alla mia griglia al momento di un successivo sorting mi si azzera tutto, ordinandi quindi la griglia basata sui dati nativi... Come posso ovviare? Grazie.
Torna su
Stanze Forum
Elenco Threads
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 !