Paging results in asp.net
asp.net, asp.net-ajax, asp.net-mvc, paging
Solution
1) Application does not have to connect to DB on each page index change, in order to retrieve either entire set or just a paged set of results
You need to cache your results. For example:
Example:
Caching Approach 1
<asp:SqlDataSource runat="server" ID="sdsd"
SelectCommand="select * from jobs"
SelectCommandType="Text"
DataSourceMode="DataSet"
ConnectionString="<%$ConnectionStrings: PUBSConnectionString %>"
CacheDuration="30"
EnableCaching="true"
>
</asp:SqlDataSource>
<asp:DropDownList ID="ddl" runat="server" AutoPostBack="true" DataSourceID="sdsd" DataTextField="job_desc" DataValueField="job_id">
</asp:DropDownList>
Caching Approach 2
You could always cache your results in code:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
IEnumerable<employee> res = Enumerable.Empty<employee>();
if (this.Cache["emp"] == null)
{
res = this.GetEmployeesFromDatabase();
this.Cache["emp"] = res;
}
else
{
res = this.GetEmployeesFromCache();
}
this.grv.DataSource = res;
this.grv.DataBind();
}
}
protected IEnumerable<employee> GetEmployeesFromDatabase()
{
// go to your database to get the objects
return Enumerable.Empty<employee>();
}
protected IEnumerable<employee> GetEmployeesFromCache()
{
return this.Cache["emp"] as IEnumerable<employee>;
}
Keep in mind that the returned object must to be a `DataSet` or `DataTable` in order to add sorting capabilities to your cache results
2) Do not want to store results in Viewstate or Session
Again you need to use cache
Is there a way to do it in asp.net, or I need to consider jQuery for this scenario.
I don't see how jQuery (by itself) can help you with your requirement, I mean if you use AJAX posts, you would improve the perceived performance of your current page, but that won't help you with the connections to the database unless you use caching
Problem
I am trying to find a solution in asp.net in order to achieve paging of data so 1) Application does not have to connect to DB on each page index change, in order to retrieve either entire set or just a paged set of results 2) Do not want to store results in Viewstate or Session For large result sets, I was thinking of storing key values (ID, rownumber) in a result set (array, json) and then populate additional row information on row binding. Is there a way to do it in asp.net, or I need to consider jQuery for this scenario.