PDA

View Full Version : نمايش كالا ها در صفحه اصلي فروش اينترنتي



kohyar
دوشنبه 16 آذر 1388, 12:18 عصر
با سلام به دوستان
من مي خوام كالاهاي سايت فروش اينترنتي رو در سه ستون نمايش بدم
اگر از datalist يا repaeter استفاده كنم خاصيت paging ندارند
اگر از گريد استفاده كنم و توسط template fileld يك جدول بذارم كه يك سطر و سه ستون داشته باشه و با استفاده از تابع <%# Eval("title") %> هر سلول جدول را پر كنم آيا در هر سطر يك كالا سه بار نمايش داده ميشه يا اينكه كالاها بدرستي نمايش داده مي شوند

A.S.Roma
دوشنبه 16 آذر 1388, 12:55 عصر
از ListView استفاده کنید که خاصیت Paging هم داره !
هر مدل DataList و Repeater رو میشه با ListView پیاده سازی کرد.

bahar_engineer
دوشنبه 16 آذر 1388, 15:23 عصر
دیتالیست خاصیت paging نداره اما با این روش کد نویسی این خاصیت رو بهش می دیم



protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
FetchDataToDataList();
}
}

private void FetchDataToDataList()
{
OleDbConnection con = new OleDbConnection(@"provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath("shop.mdb"));
OleDbCommand cmd = new OleDbCommand("select * from MyProducts ORDER BY [ProductID] DESC", con);
con.Open();
PagedDataSource pagedDS = new PagedDataSource();
DataTable dt = new DataTable("_T");
dt.Load(cmd.ExecuteReader());
pagedDS.DataSource = dt.DefaultView;
pagedDS.AllowPaging = true;
pagedDS.PageSize = 10;
DataList1.DataSource = pagedDS;
DataList1.DataBind();
con.Close();

Label1.Text = "صفحه : " + (CurrentPage + 1).ToString() + " از " + pagedDS.PageCount.ToString();
// Disable Prev or Next buttons if necessary
cmdPrev.Enabled = !pagedDS.IsFirstPage;
cmdNext.Enabled = !pagedDS.IsLastPage;
}

public int CurrentPage
{
get
{
// look for current page in ViewState
object o = this.ViewState["_CurrentPage"];
if (o == null)
return 0; // default page index of 0
else
return (int)o;
}

set
{
this.ViewState["_CurrentPage"] = value;
}
}

protected void cmdNext_Click(object sender, ImageClickEventArgs e)
{
// Set viewstate variable to the previous page
CurrentPage += 1;

// Reload control
FetchDataToDataList();
}
protected void cmdPrev_Click(object sender, ImageClickEventArgs e)
{
// Set viewstate variable to the previous page
CurrentPage -= 1;

// Reload control
FetchDataToDataList();
}



البته باید دیتالیستی که توی فرم می ذارین تعداد ستون هاشو 3 بگذارید یعنی خصوصیت repeat coloumn = 3
در این حالت 3 ستونه می شه و اون خط pagedDS.PageSize = 10; توی کدها می گه که کل محصولاتی که توی page اول نمایش داده می شه 10 تا باشه ... دو تا دکمه هم دارین که توی صفحه می ذارین واسه بعدی و قبلی و در رویداد کلیک اونها کدهای cmdNext_Click و cmdPrev_Click رو می ذارین ...

cmdPrev نام دکمه برای رفتن به صفحه قبلی هست
cmdNext نام دکمه "بعدی"

موفق باشید