Custom Pager control
Je kunt makkelijk een pager control bouwen door integers in een datatable te stoppen en te binden aan een datalist, kijk:
DataTable data = new DataTable();
data.Columns.Add("PageIndex");
data.Columns.Add("PageText");
int aantal = 0;
if (mijnPagedDatasource.PageCount < 10) { aantal =
mijnPagedDatasource.PageCount; } else { aantal = 10; };
for (int i = 1; i < aantal; i++)
{
DataRow dr = data.NewRow();
dr[0] = i;
dr[1] = i ;
data.Rows.Add(dr);
}
Vervolgens bind je de table aan een datalist:
this.dlPAger.DataSource = Dt;
this.dlPAger.DataBind();
In je asp-tag van je datalist zet je de commandeventargs zodat je deze weer kunt uitlezen als volgt:
<asp:DataList ID="dlPAger" runat="server"
RepeatDirection ="Horizontal"
OnItemCommand="ItemCommand" >
<ItemTemplate>
<div class="divPager">
<asp:LinkButton ID="lnkbtnPaging" runat="server"
CommandArgument='<%# Eval("PageIndex") %>'
CommandName="lnkbtnPaging" Text='<%#
Eval ("PageText")
%>'></asp:LinkButton>
</div>
</ItemTemplate>
</asp:DataList>
Deze commandargument lees je in de itemcommand event weer uit en omdat hij hetzelfde is als je text, weer je wel nummer is geklikt en kun je je pageddatasource.currentpage op dat nummer zetten:
protected void
ItemCommand(object source, DataListCommandEventArgs e)
{
string currentnumber = e.CommandArgument.ToString();
this.CurrentPage = (System.Convert.ToInt32 ( currentnumber) -
1);
CreatePager();
}
Let wel op dat je de