PDA

View Full Version : توضیح دادن چند خط کد برای صفحه بندی



reza9025
سه شنبه 13 خرداد 1393, 12:28 عصر
سلام دوستان.
من در مورد صفحه بندی داده ها این کد ها رو پیدا کردم ولی نمی دانم چجوری کار می کنه. لطفا اگه کسی می تونه آن را برای من توضیح دهد، کمکم کند خیلی ضروری هستش.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page
{
int iCurrentPage;
int iSkipCount;
int iPageSize = 10;//Hard code value 10 indicated page size to 10
static int iLastSkipCount;
RealEstateDataClassesDataContext db = new RealEstateDataClassesDataContext();
Tbl_Melk tbl_melk = new Tbl_Melk();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
iCurrentPage = 1;
btnNext.Attributes.Add("currentpage", iCurrentPage.ToString());
iLastSkipCount = GetProducts().Count();
var vSubProductMaster = GetProducts().Take(iPageSize);
DataList_Default_Page.DataSource = vSubProductMaster;
DataList_Default_Page.DataBind();
}
}

private IQueryable GetProducts()
{


var vSubproduct = from p in db.Tbl_Melks
select p;
return vSubproduct;
}

//moves to first record
protected void btnFirst_Click(object sender, EventArgs e)
{
iCurrentPage = 1;
btnNext.Attributes["currentpage"] = iCurrentPage.ToString();
var vFirst = GetProducts().Select(p => new { p.Pic1, p.TedadeHamam, p.Descr, p.Address, p.Rahn, p.Keraeeh, p.FeeMetree, p.FeeKol, p.TedadeKhab, p.Karbari, p.MelkID }).Take(iPageSize);
DataList_Default_Page.DataSource = vFirst;
DataList_Default_Page.DataBind();
}

//moves to Previous Record
protected void btnPrev_Click(object sender, EventArgs e)
{
iCurrentPage = Convert.ToInt32(btnNext.Attributes["currentpage"]);
iSkipCount = (iCurrentPage - 1) - iPageSize;
if (iSkipCount >= 0)
{
btnNext.Attributes.Add("currentpage", (iCurrentPage - 1).ToString());
var vNext = GetProducts().Select(p => new { p.Pic1, p.TedadeHamam, p.Descr, p.Address, p.Rahn, p.Keraeeh, p.FeeMetree, p.FeeKol, p.TedadeKhab, p.Karbari, p.MelkID }).Skip(iSkipCount).Take(iPageSize);
DataList_Default_Page.DataSource = vNext;
DataList_Default_Page.DataBind();
}
else
{
//Exception Messgae
}
}

//moves to Next Record

protected void btnNext_Click(object sender, EventArgs e)
{
iCurrentPage = Convert.ToInt32(btnNext.Attributes["currentpage"]);
iSkipCount = iCurrentPage * iPageSize-iPageSize;
//Set the value of currentpage attribute
if (iSkipCount < iLastSkipCount)
{
btnNext.Attributes.Add("currentpage", (iCurrentPage + 1).ToString());
var vNext = GetProducts().Select(p => new { p.Pic1, p.TedadeHamam, p.Descr, p.Address, p.Rahn, p.Keraeeh, p.FeeMetree, p.FeeKol, p.TedadeKhab, p.Karbari, p.MelkID }).Skip(iSkipCount).Take(iPageSize);
DataList_Default_Page.DataSource = vNext;
DataList_Default_Page.DataBind();
}
else
{
//Exception Message
}
}
//moves to Last Record
protected void btnLast_Click(object sender, EventArgs e)
{
iCurrentPage = iLastSkipCount-iPageSize;
btnNext.Attributes["currentpage"] = iCurrentPage.ToString();
var vLast = GetProducts().Select(p => new { p.Pic1, p.TedadeHamam, p.Descr, p.Address, p.Rahn, p.Keraeeh, p.FeeMetree, p.FeeKol, p.TedadeKhab, p.Karbari, p.MelkID }).Skip(iLastSkipCount-iPageSize).Take(iPageSize);
DataList_Default_Page.DataSource = vLast;
DataList_Default_Page.DataBind();
}
}

okpnz1
سه شنبه 13 خرداد 1393, 12:31 عصر
سلام برای دیتا لیست می خواید استفاده کنید؟