Asp.net ile Metni Sayfalara Bölmek

Asp.net bir projemde uzun bir metni kendi içerisinde sayfalara bölerek göstermem gerekti. Biraz araştırma sonucunda örnek bir kodu kendime göre uyarlayarak çözüm bulabildim. Benim gibi uzun uzun aramayın diye paylaşmak istedim.
Projenize
using System.Text.RegularExpressions;
Fonksiyonumuz;
 

 public static string MetinSayfala(string Metin)
    {
        string Cikti;
        string ThisPage = HttpContext.Current.Request.ServerVariables["SCRIPT_NAME"];
        string SayfaNo;
        SayfaNo = HttpContext.Current.Request.QueryString["yazisayfa"];
        if (Metin.IndexOf("<!--pagebreak-->") != -1)
        {
            string[] Pages = Regex.Split(Metin, "<!--pagebreak-->");
            int TotalPages = Pages.GetUpperBound(0) + 1;
            int sayac = 1;
            int SayfaNumarasi = 1;
            if (SayfaNo != null)
            {
                SayfaNumarasi = System.Convert.ToInt32(SayfaNo);
            }
            Cikti = Pages[SayfaNumarasi - 1];
            Cikti += "<br><br>SAYFA: ";
            while (sayac <= TotalPages)
            {
                if (sayac == SayfaNumarasi)
                {
                    Cikti += sayac.ToString() + " ";
                }
                else
                {
                    Cikti += "<a href=\"" + ThisPage + "?yazisayfa=" + sayac.ToString();
                    Cikti += "\">" + sayac.ToString() + "</a> ";
                }
                sayac++;
            }
        }
        else
        {
            Cikti = Metin;
        }
        return Cikti;
    }

Kısaca Açıklarsak; Metin içerisinde “<!–pagebreak–>” geçen kısım aralıklarını sayfalamaya başlıyor.

Bunu yönetim panelinden girilen kayıda aktarmakta biraz sıkıntı yaşamadım dersem yalan olur. Metin editörü olarak FCKeditor kullanıyorum. Orada sayfa sonu ekle butonu
<div style=”page-break-after: always”><span style=”DISPLAY:none”>&nbsp;</span></div>” bazen de “<div style=”page-break-after: always”><span style=”display:none”>&nbsp;</span></div>” ekliyor. Bunu koda uyarlamak için;
 

 string metin = dt1.Rows[0]["detay"].ToString().Replace(@"<div style=""page-break-after: always;""><span style=""DISPLAY:none"">&nbsp;</span></div>", "<!--pagebreak-->").Replace(@"<div style=""page-break-after: always""><span style=""display: none"">&nbsp;</span></div>", "<!--pagebreak-->");
Response.Write(PageArticle(metin));

şeklinde kullanmıştım. (metinin uzunluğuna göre arka planda servisi zorlayabilir. )
 
Referans 
 

You may also like

1 Yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.