In my asp.net application have one data list, page load event I have to bind number of image items(1000), how to apply the load on demand (What you can say Lazy loading of images) (when scrolling the page that time only bind the items like facebook new needs page)
Basically I don't want page load delay due to no of images and their loading time. my code is page load event get the data and bind the datalist
SqlCommand comd = new SqlCommand("usp_GetSubCategoryProducts", OBcon);
comd.CommandType = CommandType.StoredProcedure;
comd.Parameters.Add("@ID", SqlDbType.Int).Value = SubCategory_id;
DataSet ds = new DataSet();
SqlDataAdapter sqlAdapter = new SqlDataAdapter();
sqlAdapter.SelectCommand = comd;
sqlAdapter.Fill(ds);
listView.DataSource = ds;
listView.DataBind();
Well you can do this using jQuery's lazy image load tool... This is great and just fit your needs.
http://www.appelsiini.net/projects/lazyload
Lazy Load is a jQuery plugin written in JavaScript. It delays loading of images in long web pages. Images outside of viewport (visible part of web page) wont be loaded before user scrolls to them. This is opposite of image preloading.
Using Lazy Load on long web pages containing many large images makes the page load faster. Browser will be in ready state after loading visible images. In some cases it can also help to reduce server load. (Above is taken from the site)
For demo pls visit this page and you would know that this is the thing you are looking for.
This is an easy to integrate stuff so fit your needs.
To make it in Datalist or repeater you can do this using
You need to concentrate on CssClass and SRC attribute while binding and rest is taken care by jQuery.
Configuration of JQuery is important.
There is not any built in function in asp.net to do this task.But you may use jquery plugin for this purpose.
Lazy loader delays loading of images in (long) pages. Images below the fold (far down in the page) wont be loaded before user scrolls down.
For details see a link. http://archive.plugins.jquery.com/project/lazyload
The
DataList
is not meant for this purpose. You are better off using javascript and ajax calls.Have a url that takes the
StartIndex
andCount
of as parameters and list our the urls to show. Then just append them in using javascript.