Hi,
Here I have created sample that will help you out.
I have referred below article
HTML
<div>
<div id="dvImages" style="height: 250px; overflow: auto; width: 517px">
<asp:Repeater ID="rptImages" runat="server">
<ItemTemplate>
<div class="mix col-md-3 col-xs-4">
<a class="fancybox" rel="gallery1" href="<%# Eval("Url") %>" title="Trek Name 1">
<img src="<%# Eval("Url") %>" alt="" />
</a>
</div>
<br />
</ItemTemplate>
</asp:Repeater>
</div>
<div class="loader" style="display: none">
<img src="103.gif" />
</div>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script type="text/javascript">
var pageIndex = 1;
var pageCount = 10;
var IsNoMoreImages = false;
$("#dvImages").on("scroll", function (e) {
var $o = $(e.currentTarget);
if ($o[0].scrollHeight - $o.scrollTop() <= $o.outerHeight()) {
GetRecords();
}
});
function GetRecords() {
pageIndex++;
if (pageIndex == 2 || pageIndex <= pageCount) {
if ($(".loader").is(':visible') == 0) {
$(".loader").show();
}
$.ajax({
type: "POST",
url: "CS.aspx/GetImages",
data: '{pageIndex: ' + pageIndex + '}',
contentType: "application/json; charset=utf-8",
dataType: "json",
success: OnSuccess,
failure: function (response) {
alert(response.d);
},
error: function (response) {
alert(response.d);
}
});
} else {
if (!IsNoMoreImages) {
IsNoMoreImages = true;
$("#dvImages").append('<br /><div><b>No more images to show...</b><div>');
}
}
}
function OnSuccess(response) {
var xmlDoc = $.parseXML(response.d);
var xml = $(xmlDoc);
pageCount = parseInt(xml.find("PageCount").eq(0).find("PageCount").text());
var customers = xml.find("Images");
var table = $("#dvImages div").eq(0).clone(true);
$("#dvImages div").eq(0).remove();
customers.each(function () {
var customer = $(this);
$(".fancybox", table).attr('href', customer.find("Url").text());
$(".fancybox", table).find('img').attr('src', customer.find("Url").text());
$("#dvImages").append(table);
table = $("#dvImages div").eq(0).clone(true);
});
$(".loader").hide();
}
</script>
</div>
C#
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
rptImages.DataSource = GetImagesData(1, 10);
rptImages.DataBind();
}
}
[WebMethod]
public static string GetImages(int pageIndex)
{
System.Threading.Thread.Sleep(2000);
return GetImagesData(pageIndex, 10).GetXml();
}
public static DataSet GetImagesData(int pageIndex, int pageSize)
{
string query = "[GetImagesPageWise]";
SqlCommand cmd = new SqlCommand(query);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@PageIndex", pageIndex);
cmd.Parameters.AddWithValue("@PageSize", pageSize);
cmd.Parameters.Add("@PageCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
return GetData(cmd);
}
private static DataSet GetData(SqlCommand cmd)
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataSet ds = new DataSet())
{
sda.Fill(ds, "Images");
DataTable dt = new DataTable("PageCount");
dt.Columns.Add("PageCount");
dt.Rows.Add();
dt.Rows[0][0] = cmd.Parameters["@PageCount"].Value;
ds.Tables.Add(dt);
return ds;
}
}
}
}
VB
Protected Sub Page_Load(sender As Object, e As EventArgs)
If Not IsPostBack Then
rptImages.DataSource = GetImagesData(1, 10)
rptImages.DataBind()
End If
End Sub
<WebMethod> _
Public Shared Function GetImages(pageIndex As Integer) As String
System.Threading.Thread.Sleep(2000)
Return GetImagesData(pageIndex, 10).GetXml()
End Function
Public Shared Function GetImagesData(pageIndex As Integer, pageSize As Integer) As DataSet
Dim query As String = "[GetImagesPageWise]"
Dim cmd As New SqlCommand(query)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@PageIndex", pageIndex)
cmd.Parameters.AddWithValue("@PageSize", pageSize)
cmd.Parameters.Add("@PageCount", SqlDbType.Int, 4).Direction = ParameterDirection.Output
Return GetData(cmd)
End Function
Private Shared Function GetData(cmd As SqlCommand) As DataSet
Dim strConnString As String = ConfigurationManager.ConnectionStrings("constr").ConnectionString
Using con As New SqlConnection(strConnString)
Using sda As New SqlDataAdapter()
cmd.Connection = con
sda.SelectCommand = cmd
Using ds As New DataSet()
sda.Fill(ds, "Images")
Dim dt As New DataTable("PageCount")
dt.Columns.Add("PageCount")
dt.Rows.Add()
dt.Rows(0)(0) = cmd.Parameters("@PageCount").Value
ds.Tables.Add(dt)
Return ds
End Using
End Using
End Using
End Function
Screenshot
