Ho una GridView, gli ho settato la proprietà AllowPaging a true.
Il problema è che mi genera un codice che non mi piace neanche un pò (una table annidata in una cella).
Allora ho pensato bene di usare il <PagerTemplate>.
In pratica vorrei solo una lista di linkbuttons (pag.1 pag.2 pag.3 etc)
Ho provato a creare il tutto dinamicamente all'evento DataBound della GridView con questo codice:
codice:
protected void GridView1_DataBound(object sender, EventArgs e)
{
GridViewRow pagerRow = GridView1.BottomPagerRow;
if (pagerRow != null)
{
Label pagerLabel = new Label();
pagerLabel.Text = "Pagina "+(GridView1.PageIndex+1).ToString()+" di "+(string)GridView1.PageCount.ToString()+"";
pagerRow.Cells[0].Controls.Add(pagerLabel);
}
for (int i = GridView1.PageCount-1; i >= 0; i--)
{
LinkButton lnk = new LinkButton();
lnk.Text = (i + 1).ToString();
lnk.CommandName = "Page";
lnk.CommandArgument = i.ToString();
lnk.CausesValidation = false;
lnk.Command += new CommandEventHandler(lb_Command);
if (i == GridView1.PageIndex)
{
lnk.CssClass = "current";
}
pagerRow.Cells[0].Controls.Add(lnk);
}
}
void lb_Command(object sender, CommandEventArgs e)
{
if (e.CommandName == "Page")
GridView1.PageIndex = Convert.ToInt32(e.CommandArgument);
}
I link mi compaiono correttamente ma:
A) se clicco sui link non mi passa alla pagina prescelta (ricarica quella corrente) e in più
B) mi scompare la riga con il pager.
E' tutta la giornata che ci sto sbattendo la testa e online non trovo nulla che mi conforti. Qualche anima pia sa dirmi dov'è che sbaglio?