GridView con pager personalizzato
In questo articolo ho cominciato a parlarvi di come controllare una GridView da code-behind.
Come detto quell'articolo non è completo per due motivi:
- il pager
- il sorting
Qui vediamo come usare un pager personalizzato.
Prima di tutto vi riporto la GV:
protected void decoderViewSource()
{
SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MYDB"].ConnectionString);
String queryString = "SELECT * FROM siti";
try
{
conn.Open();
SqlDataAdapter adapter = new SqlDataAdapter(queryString, conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
DataView dv = new DataView();
dv = ds.Tables[0].DefaultView;
if (sortExpr != string.Empty)
{
dv.Sort = string.Format("{0} {1}", sortExpr, sortDir);
}
DecoderView.DataSource = dv;
DecoderView.AutoGenerateColumns = false;
DecoderView.AutoGenerateSelectButton = true;
DecoderView.AllowSorting = true;
DecoderView.AllowPaging = true;
DecoderView.CssClass = "grid";
DecoderView.PageSize = int.Parse(ddlPagine.SelectedValue);
DecoderView.PagerSettings.Visible = false;
DecoderView.DataBind();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
conn.Close();
}
}
Il paging è attivato ma c'è una riga in più:
DecoderView.PageSize = int.Parse(ddlPagine.SelectedValue);
Questo fa il parsing del valore selezionato in una DDL.
La DDL in questione è questa:
<asp:DropDownList ID="ddlPagine" runat="server" AutoPostBack="True" OnSelectedIndexChanged="numeroPagine">
<asp:ListItem Text="5" Value="5"></asp:ListItem>
<asp:ListItem Text="10" Value="10"></asp:ListItem>
<asp:ListItem Text="20" Value="20"></asp:ListItem>
<asp:ListItem Text="Tutti" Value="1000000"></asp:ListItem>
</asp:DropDownList>
Le opzioni importatnti da attivare sono l'AutoPostBack e l'evento OnSelectedIndexChanged che richiama un metodo del code-behind.
protected void numeroPagine(Object sender, EventArgs e)
{
DecoderView.PageSize = int.Parse(ddlPagine.SelectedValue);
decoderViewSource();
}
Fa il parse del valore e poi richiama il metodo di caricamento della GV.
Per quanto riguarda le voci state attenti all'ultima: nel caso abbiate tantissimi record il caricamento potrebbe essere molto lento.
asp.net gridview c#
Commentami!