b.paseban
سه شنبه 14 تیر 1390, 20:34 عصر
سلام بر تمامی دوستان.
من یه کد از توی اینترنت پیدا کردم که بصورت زیر میاد و داخل template paging یه سری دکمه بصورت داینامیک ایجاد میکنه وبه هر کدوم یه command name و یه command argument میده برای رفتن به صفحه مورد نظر.
حالا من میخوام برای این کد یه کاری انجام بدم که اگر تعداد صفحات زیاد بود بیاد بطور مشخصی (مثل همین paging سایت ) صفحات رو نشون بده.
حالا یه مشکلی که هست من نمیتونم کاری کنم که paging بصورت دلخواه من در بیاد.(مثلا در صورت وجود بیشتر از 100 صفحه بیاد صفحات 1 تا 10 رو نشون بده و بعدشم و صفحه 20 و 30 و الی آخر.
یه چیزی مثل همین سایت.)
در ضمن من میخوام فیلتری برای کاربر بزارم که تعداد نتایج در صفحه رو خودش معین کنه،مثلا 20 تا در صفحه و یا 10 تا در هر صفحه و یا نمایش بصورت صعودی و یا نزولی بر اساس یک فیلد.
کد مربوطه:
GridViewRow grw = Gv.BottomPagerRow;
int pagecount = Gv.PageCount;
int pageindex = Gv.PageIndex;
//Create Numbers If:PageCount<10
for (int i = 2; i < pagecount; i++)
{
LinkButton btn = new LinkButton();
string btninfo = "Page" + i.ToString();
btn.Text = btninfo + " ";
btn.ID = btninfo;
btn.Font.Underline = false;
if (i == Gv.PageIndex + 1)
{
btn.BackColor = Color.Red;
btn.Font.Bold = true;
btn.ForeColor = Color.White;
}
btn.CommandArgument = i.ToString();
btn.CommandName = "Page";
btn.ToolTip = btninfo;
PlaceHolder pnl = grw.FindControl("pnl") as PlaceHolder;
pnl.Controls.Add(btn);
}
pnl توی این کد یه PlaceHolder هست داخل تگ <PagerTemplate> گرید ویو.
gv هم ای دی گرید ویو هست.
حالا این کار(درست کردن paging به این روش) درست هست یا نه؟
اگه هست چطوری باید مثل همین paging سایت درآوردش؟
اگه نه راه درست چیه؟باید طرف sql ما paging رو درست کنیم؟(یه چیزایی توی سایت دربارش خوندم ولی کامل نه)
اگر سورسی یا مقاله ای هست ممنون میشم راهنمایی کنید.
من یه کد از توی اینترنت پیدا کردم که بصورت زیر میاد و داخل template paging یه سری دکمه بصورت داینامیک ایجاد میکنه وبه هر کدوم یه command name و یه command argument میده برای رفتن به صفحه مورد نظر.
حالا من میخوام برای این کد یه کاری انجام بدم که اگر تعداد صفحات زیاد بود بیاد بطور مشخصی (مثل همین paging سایت ) صفحات رو نشون بده.
حالا یه مشکلی که هست من نمیتونم کاری کنم که paging بصورت دلخواه من در بیاد.(مثلا در صورت وجود بیشتر از 100 صفحه بیاد صفحات 1 تا 10 رو نشون بده و بعدشم و صفحه 20 و 30 و الی آخر.
یه چیزی مثل همین سایت.)
در ضمن من میخوام فیلتری برای کاربر بزارم که تعداد نتایج در صفحه رو خودش معین کنه،مثلا 20 تا در صفحه و یا 10 تا در هر صفحه و یا نمایش بصورت صعودی و یا نزولی بر اساس یک فیلد.
کد مربوطه:
GridViewRow grw = Gv.BottomPagerRow;
int pagecount = Gv.PageCount;
int pageindex = Gv.PageIndex;
//Create Numbers If:PageCount<10
for (int i = 2; i < pagecount; i++)
{
LinkButton btn = new LinkButton();
string btninfo = "Page" + i.ToString();
btn.Text = btninfo + " ";
btn.ID = btninfo;
btn.Font.Underline = false;
if (i == Gv.PageIndex + 1)
{
btn.BackColor = Color.Red;
btn.Font.Bold = true;
btn.ForeColor = Color.White;
}
btn.CommandArgument = i.ToString();
btn.CommandName = "Page";
btn.ToolTip = btninfo;
PlaceHolder pnl = grw.FindControl("pnl") as PlaceHolder;
pnl.Controls.Add(btn);
}
pnl توی این کد یه PlaceHolder هست داخل تگ <PagerTemplate> گرید ویو.
gv هم ای دی گرید ویو هست.
حالا این کار(درست کردن paging به این روش) درست هست یا نه؟
اگه هست چطوری باید مثل همین paging سایت درآوردش؟
اگه نه راه درست چیه؟باید طرف sql ما paging رو درست کنیم؟(یه چیزایی توی سایت دربارش خوندم ولی کامل نه)
اگر سورسی یا مقاله ای هست ممنون میشم راهنمایی کنید.