نمایش نتایج 1 تا 2 از 2

نام تاپیک: پیاده سازی صفحه بندی خاص برای گرید ویو

  1. #1
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    پیاده سازی صفحه بندی خاص برای گرید ویو

    با سلام می خواستم بپرسم ما چطوری می تونیم صفحه بندی مانند شکل زیر داشته باشیم
    Untitled.jpg
    دوستان توجه داشته باشین در هر کدام از لینک باتن های تصویر لینکی هست که با گوئری استرینگ شماره صفحه رو ارسال می کنه مثلاhttp://example.com/index.aspx?page=2 والی آخر یعنی وقتی روی 3 کلیک میشه اینطوریه لینکش http://example.com/index.aspx?page=3

  2. #2
    کاربر دائمی آواتار clover
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    اصفهان - اراک
    پست
    646

    نقل قول: پیاده سازی صفحه بندی خاص برای گرید ویو

    دوستان توجه داشته باشین در هر کدام از لینک باتن های تصویر لینکی هست که با گوئری استرینگ شماره صفحه رو ارسال می کنه
    با مقدار دهی خاصیت QueryStringField قادر خواهید بود این کار رو انجام بدید:
    QueryStringField="page"


    می خواستم بپرسم ما چطوری می تونیم صفحه بندی مانند شکل زیر داشته باشیم
    یکی از روش ها استفاده از Pager Template هست:
    http://msdn.microsoft.com/en-us/libr...rtemplate.aspx

    می تونید به این روش هم عمل کنید:
    یک دیتا پیجر بدون کنترل های داخلی رو در قسمت مربوطه قرار بدید:
    <asp:DataPager runat="server" QueryStringField="pg"  OnPreRender="DataPager_PreRender" PageSize="10" />

    و بعد در هنگام رندر شدن دکمه ها رو اضافه کنید:
    protected void DataPager_PreRender(object sender, EventArgs e)
    {
    DataPager dataPager = sender as DataPager;
    StringBuilder stringBuilder = new StringBuilder();
    string currentPath = "";

    currentPath = Regex.Match(Request.RawUrl, @"^(.*?)(/page-\d+)?/?$").Groups[1].Value;


    int totalRows = dataPager.TotalRowCount;
    int pageSize = dataPager.PageSize;
    int totalPage = (int)Math.Ceiling((decimal)totalRows / pageSize);
    int selectedPage = dataPager.StartRowIndex / pageSize + 1;

    int startPage = selectedPage - (ButtonCount / 2);
    startPage = (startPage < 1) ? 1 : startPage;

    int endPage = startPage + ButtonCount - 1;
    endPage = (endPage > totalPage) ? totalPage : endPage;

    if (selectedPage > ButtonCount / 2 + 1)
    {
    stringBuilder.Append(string.Format(@"<a href=""{0}{1}"" class=""rc3 rf bbtn"" style=""padding: 1px 6px 3px; margin: 0 2px; height: 14px; color: #000000;"">{2}</a>", currentPath, startPage == 2 ? "" : string.Format("/page-{0}", startPage - 1), "<<"));
    }


    // paging

    for (int i = startPage; i <= endPage; i++)
    {
    if (selectedPage != i)
    {
    stringBuilder.Append(string.Format(@"<a href=""{0}{1}"" class=""rc3 rf bbtn"" style=""padding: 1px 6px 3px; margin: 0 2px; height: 14px; color: #000000;"">{2}</a>", currentPath, i == 1 ? "" : string.Format("/page-{0}", i), i));
    }
    else
    {
    stringBuilder.Append(string.Format(@"<div class=""rc3 rf ybtn"" style=""padding: 1px 6px 3px; margin: 0 2px; height: 14px; color: #000000;"">{0}</div>", i));
    }
    }

    if (endPage < totalPage)
    {
    stringBuilder.Append(string.Format(@"<a href=""{0}/page-{1}"" class=""rc3 rf bbtn"" style=""padding: 1px 6px 3px; margin: 0 2px; height: 14px; color: #000000;"">{2}</a>", currentPath, endPage + 1, ">>"));
    }

    Literal spaceb = new Literal();
    spaceb.Text = stringBuilder.ToString();
    dataPager.Controls.Add(spaceb);
    }

    دقت کنید که این مثال برای کنترل های داده ای هست که در Template اونها میشه از DataPager استفاده کرد مانند ListView، برای تعمیم این روش به GridView از یک PlaceHolde در PagerTemplate استفاده کنید و مشخصاتی مانند شماره صفحه ی جاری و غیره رو هم می تونید از PagerSettings به دست بیارید. همچنین دقت کنید که در این مثال از URL Rewriting استفاده کردم و مسیر صفحات رو به صورت مجازی قرار دادم، در نهایت در هنگام Rewrite کردن آدرس ها Query String با نام pg رو مقدار دهی می کنم که مشخص کننده شماره صفحه هست.
    می تونید برای راحتی بیشتر از یک یوزر کنترل برای نگهداری دیتاپیجر و کدها استفاده کنید و این یوزر کنترل رو در گریدویو استفاده کنید.

    البته به احتمال زیاد راه های بهتر و اصولی تری هم هست و این روش فقط یک روش سریع و ابتدایی برای این کار هست. همچنین دقت کنید که کدها بهینه نیستند و فقط جنبه ی آموزش مد نظر بوده.

    موفق باشید
    آخرین ویرایش به وسیله clover : یک شنبه 08 مرداد 1391 در 23:14 عصر

تاپیک های مشابه

  1. ایجاد چندین صفحه برای گرید ویو
    نوشته شده توسط atinetsherkat در بخش C#‎‎
    پاسخ: 2
    آخرین پست: دوشنبه 18 مرداد 1389, 13:53 عصر
  2. ارور مربوط به رفتن از صفحه ای به صفحه ی دیگر در گرید ویو
    نوشته شده توسط hamhik در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: جمعه 10 اسفند 1386, 23:28 عصر
  3. پیاده سازی صفحه کلید نرم افزاری
    نوشته شده توسط fereshteh_b در بخش برنامه نویسی در Delphi
    پاسخ: 5
    آخرین پست: یک شنبه 12 آذر 1385, 23:58 عصر
  4. پیاده سازی صفحه پرسش کلمه عبور قبل از شروع نمایش سایت
    نوشته شده توسط francosoft در بخش طراحی وب (Web Design)
    پاسخ: 2
    آخرین پست: شنبه 21 آذر 1383, 21:14 عصر
  5. پیاده سازی صفحه پرسش کلمه عبور
    نوشته شده توسط francosoft در بخش PHP
    پاسخ: 2
    آخرین پست: شنبه 14 آذر 1383, 09:17 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •