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

{{opmerking.Naam}}:

{{opmerking.OpmerkingText}}

            

Saving your comment....

Naam is verplicht!
Email is verplicht!
Opmerking is verplicht!