Forms Data Controls :: Implement A Custom Paging Template For Formview That Displays Numeric Paging As Well As Next / Previous Buttons
Feb 9, 2011
I'd like to implement a custom paging template for my formview that displays numeric paging as well as next/previous buttons. The pre-defined templates only appear to have numeric first last as an option. Can anyone recommend a good article that covers this?
I have read your article from aspsnippets.com about custom paging it really work, but there are a problem that if there are more record in database (2000 to 5000) than number of page index will be goes in large number. like 1 to 200, any way which can divide it like 12345678910...2000.
I have implemented a numeric paging using PagerTempalte.I have setted down page size is 5.I have to implement 2 thigs in gridview PagerTempalte:- #1 I have to show numeric paging with .. symbol like: 12345. If suppose there is a total 20 record record then it will display like :12345. If u clicked on. afert 5 then it has to show next set of 5 records like: ..678910...
#2 I have to show set of records out of total records in pager template like: showing records 1-5 out of 20 So final pager look out should be like this:- 12345... showing records 1-5 out of 20
We have a page the we have to write where users are shown 'pages' of data from our database they then select the row they want and we take them into another part of the application where they can work with the data.
When we use the built in paging (in the gridview) it is just too slow, as there is too much data.
We have written paging into our stored procedure that gets the data to work around this. The stored procedure works just fine and it is quite fast.
How can I get 'paging' buttons into my gridview when I am not using the built in gridview paging?I can keep it simple if I have to (next and previous only) but it would be better to have a 'first', 'previous', 'next', 'last' type buttons.
I cannot seem to figure out how to get these buttons into the gridview however.
some sample code (preferably vb) that would show this? (or something similar)
I have a Custom Repeater control that inherits from Repeater and has paging functionality, however when I click the next page button the first time it refreshes the control but does not change the page, if I click it again after that it changes page perfectly. I know what the issue is, when I click the next button it does a postback, then the data is bound to the repeater, and then after that the NextButton Event is handled.
Is there any way I can change the order of the page load events?? Or force the repeater to reload again after the event is handled?? I've included my Custom Repeater class bellow:
using System.Web.UI.WebControls; using System.Web.UI; using System.Data; using System.Collections; using System; namespace ASPresentation.Controls { [ToolboxData("<cc:PagedRepeater runat=server></cc:PagedRepeater>")] public class PagedRepeater : Repeater { public int PageSize { get; set; } public int CurrentPageIndex { get { return Convert.ToInt16(Page.Session["ProjectIndex"]); } set { Page.Session.Add("ProjectIndex", value); } } public PagedDataSource pagedData = new PagedDataSource(); LinkButton NextBtn = new LinkButton(); LinkButton PrevBtn = new LinkButton(); public bool IsLastPage { get { return pagedData.IsLastPage; } } public bool IsFirstPage { get { return pagedData.IsFirstPage; } } public override object DataSource { get { return base.DataSource; } set { pagedData.DataSource = (IEnumerable)value; } } protected void NextButtonClick(object sender, EventArgs e) { if (!IsLastPage) { CurrentPageIndex++; } } protected void PrevButtonClick(object sender, EventArgs e) { if (!IsFirstPage) { CurrentPageIndex--; } } protected override void OnInit(EventArgs e) { base.OnInit(e); NextBtn.Text = "Next"; PrevBtn.Text = "Prev"; NextBtn.Click += new EventHandler(NextButtonClick); PrevBtn.Click += new EventHandler(PrevButtonClick); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); base.Controls.Add(PrevBtn); base.Controls.Add(NextBtn); } protected override void Render(HtmlTextWriter writer) { base.Render(writer); } public override void DataBind() { pagedData.AllowPaging = true; pagedData.PageSize = PageSize; pagedData.CurrentPageIndex = CurrentPageIndex; base.DataSource = pagedData; base.DataBind(); } } }
Is there a way to use the GridView paging and having the links not use JavaScript. So that when you click on the page number 5 (for example) that link is a hyperlink.
using System; // We need these namespaces imported to work easier with database using System.Data; using System.Data.SqlClient; // Here is PagedDataSource class located using System.Web.UI.WebControls;
[Code] .....
Record loaded into control but when i press next button then next 10 record showing properly but when i want to see another next record then it shows same record.
e.g. i have 40 records in my db then first time it shows 1 to 10 record
when i press next button then it shows 11 - 20 records
again i press next button then it shows 11-20 records instead of 21-30 records...
I'm still begginer in ASP.net and wonder whether is it possible to assing a keyboard shortcut to next (previous) page command. For example: after press PageUp on keyboard - the next record is shown in FormView, after press PageDown - previous record?
I have read many online articles showing how to implement custom paging with stored procedure and objectdatasource control. So I know the benefits of custom paging on large result sets and I know how to implement it.
In my application, I have a stored procedure which is using ROW_NUMBER and taking parameters such as startIndex, pageSize etc. I also have method in my DAL who call this stored procedure and on my page I have GridView and ObjectDataSource control and they are calling DAL methods and everything is working perfectly fine.
Now I want to implement GridView paging without ObjectDataSource control by calling the DAL methods manually. I dont want to use ObjectDataSource control because I need manual access to the DataTable my DAL methods return which I think I dont have if I use ObjectDataSource control.
how to implement paging without ObjectDataSource control
I am having a formview control with paging enabled. It's a simple page used for viewing pictures. (It's from the personal web site starter kit with some modification)
[Code]....
I would like the formview to pass not only the pageindex value but also the Next or previous picture's unique ID called in my case PictureID?
I was able to get the formview bound to the objectdatasource, it works great for the first record, but when i select the next record it gives me error below is all my code, if there is something else that i need to post .
As a part of requirement, I need to bind a table data to the Gridview, but the data content in the table is too large. I need not want to bring in all the data into the dataset, rather I need to bring only the rows that are needed to be displayed(Eg, if the page size is 10, i need only 10 records to be filled in dataset
I have a gridview control which contains aproximately 2,040 records of IP addresses. Right now I have setup my gridview control with the following options: AllowPaging="True" PageSize="255".
This has the effect of placing each IP range on its own page. So for instance 192.168.0.1-192.168.0.255 is on page 1, and 192.168.1.0-192.168.1-255 is on page 2 and so forth. The issue is that finding the IP range I want in the application is really a pain and I usually have to click page by page through the gridview to find the range I want to edit.
I'd like to have a custom paging and instead having pagination which says 1,2,3,4,5,6 etc had more meaningful labels like "192.168.0.x Range", "10.10.10.1 Range", "172.22.50.x range" and so forth. So that I can immediately jump to the page that I want. note that in most cases I need to browse the data not search for a specific element so creating a searchbox isn't neccessarily the answer. I just need more efficient paging.
I'm not really sure how to accomplish this. I've tried searching google for custom pagination + gridview etc and I'm not having much luck. Maybe I don't have the right combo of search terms.
Im pretty confused on this and would appreciate any suggestions.Im trying to implement custom paging because my database has some 400,000ish records and i want to show 20 at a time in a gridview. I don't want to use a datasource in the html because this gridview gets populated using a dataset in the .cs (c#) because the user first filters on params. I have two sp (on to get the total record count and one that filters). Both sp work.
[Code]....
and...
[Code]....
Does anyone know how i can tell my gridview (and if i need to implement a datapager) the total number of records, to get the page numbers on the bottom correct and then pass the parameter @PageNum @PageSize@sortExpression?