title: Kendo UI Lazy Loading
body: <p>I am using the following code. Can anybody tell me how will I use the page number instead of scroll bar?</p>
  
  <p><strong>My Index.cshtml page will be like</strong> </p>
  
  <pre><code>&lt;div id="CustomerProfile"&gt;
  &lt;div id="GridCusotmerProfile"&gt;
      @(Html.Kendo().Grid(Model)
                  .Name("grdCustomerProfile")
  
                  .Columns(coloumns =&gt;
                      {
                          coloumns.Bound(p =&gt; p.CustomerID).Title("Customer ID");
                          coloumns.Bound(p =&gt; p.UserId).Title("User Id");
                          coloumns.Bound(p =&gt; p.ComapnyName).Title("Company Name");
                          coloumns.Bound(p =&gt; p.ContactPerson).Title("Contact Person");
                          coloumns.Bound(p =&gt; p.AccountNumber).Title("Account Number");
                      }
                  )
                  .Sortable()                    
                  .Scrollable(scrollable =&gt; scrollable.Virtual(true))
                  .HtmlAttributes(new { style = "height:430px;" })
                  .DataSource(dataSource =&gt; dataSource
                                                .Ajax()
                                                .PageSize(10)
                                                .Read(read =&gt; read.Action("Virtualization_Read", "CustomerProfile"))
  
                                              )
  
  
                  )
  &lt;/div&gt;
  </code></pre>
  
  <p><strong>My Controller will be like the following</strong></p>
  
  <pre><code>public List&lt;CustomerProfileModel&gt; CustomerDataSource(int page, int pagesize, int skip, int take)
      {
          List&lt;CustomerProfileModel&gt; ModelData = new List&lt;CustomerProfileModel&gt;();
  
          take = skip + take + (page * 10);
          var CustomerData = (from cp in context.CustomerProfile select cp).OrderBy(x =&gt; x.ComapnyName).Take(take).Skip(skip).ToList();
  
          foreach (var items in CustomerData)
          {
              CustomerProfileModel Model = new CustomerProfileModel();
              Model.CustomerID = items.CustomerID;
              Model.AccountNumber = items.AccountNumber;
              Model.ComapnyName = items.ComapnyName;
              Model.ContactPerson = items.ContactPerson;
              Model.UserId = items.UserId;
              ModelData.Add(Model);
          }
  
          return ModelData;
      }
  public ActionResult Virtualization_Read([DataSourceRequest] DataSourceRequest request, string page,string pagesize,string skip,string take)
      {
          return Json(CustomerDataSource(Convert.ToInt32(page),Convert.ToInt32(pagesize),Convert.ToInt32(skip),Convert.ToInt32(take)).ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
      }
  
  public List&lt;CustomerProfileModel&gt; CustomerDataSource(int page, int pagesize, int skip, int take)
      {
          List&lt;CustomerProfileModel&gt; ModelData = new List&lt;CustomerProfileModel&gt;();
  
          take = skip + take + (page * 10);
          var CustomerData = (from cp in context.CustomerProfile select cp).OrderBy(x =&gt; x.ComapnyName).Take(take).Skip(skip).ToList();
  
          foreach (var items in CustomerData)
          {
              CustomerProfileModel Model = new CustomerProfileModel();
              Model.CustomerID = items.CustomerID;
              Model.AccountNumber = items.AccountNumber;
              Model.ComapnyName = items.ComapnyName;
              Model.ContactPerson = items.ContactPerson;
              Model.UserId = items.UserId;
              ModelData.Add(Model);
          }
  
          return ModelData;
      }
  
  public ActionResult Virtualization_Read([DataSourceRequest] DataSourceRequest request, string page,string pagesize,string skip,string take)
      {
          return Json(CustomerDataSource(Convert.ToInt32(page),Convert.ToInt32(pagesize),Convert.ToInt32(skip),Convert.ToInt32(take)).ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
      }
  </code></pre>
  
  <p><strong>Please let me know if I need something else to get data as lazy loading.</strong></p>