System.Web.UI.Page'de Neymiş?
|| HAYATTA HER ŞEYİ PAYLAŞAN BİR PLATFORM || TÜRKİYENİN YÜKSELEN YILDIZI || HAYAT BURDA || :: Web Programlama
1 sayfadaki 1 sayfası
System.Web.UI.Page'de Neymiş?
Ben bundan sonra kendi class' ımı kendim yazarım. İstediğim gibi sayfama ait ne varsa buradan set ederim. Böylece her oluşturduğum sayfada bu işleri tekrar tekrar yapmam. Buyrun MyPage.cs isimli klasımıza ait kodumuz.
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
namespace MyNamespace
{
public class MyPageClass : System.Web.UI.Form
{
protected override **** OnInit(EventArgs e)
{
#region Disable ViewState
this.Page.EnableViewState = false;
#endregion
#region Apply default stylesheet
/* Web sayfasında kullanılcak olan style dosyasını set ediyoruz */
this.AddStyleSheet("main.css");
#endregion
/* Web.Config dosyamızdaki değere göre sayfanın başlık bilgisini set ediyoruz */
Page.Header.Title = System.Configuration.ConfigurationManager.AppSetti ngs["APPTITLE"];
/*
* Alttaki bilgiler sayfaların cache' den gelmesini engeller
* Özellikle bir post işleminden sonra bir önceki sayfaya gidilmesi ihtimali büyük sorunlar çıkarabilir
*/
Page.Response.Expires = 0;
Page.Response.AddHeader("Pragma", "no-cache");
Page.Response.CacheControl = "Public";
Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("iso-8859-9");
/* Örnek olması açısından; sayfada kullanılcak script dosyalarını register ediyoruz */
/* System.Configuration.ConfigurationManager.AppSetti ngs["scriptPath"]
* ile Web.Config' de script dosyalarının durduğu klasörün ismini alıyoruz
*/
Clientscript.RegisterClientscriptInclude("script_K EY", System.Configuration.ConfigurationManager.AppSetti ngs["scriptPath"] + "Dosya_Ismi.js");
base.OnInit(e);
}
/* Verilen css dosyasını sayfanın header bilgisine yazan fonksiyon */
protected virtual **** AddStyleSheet(string cssPath)
{
string includeTemplate = "";
/* ConfigurationManager.AppSettings["CssPath"]
* ile Css dosyalarının bulunduğu klsörü öğreniyoruz, Web.Config' den
*/
string includePath = ConfigurationManager.AppSettings["CssPath"] + cssPath;
Page.Header.Controls.Add(new LiteralControl(String.Format(includeTemplate, includePath)));
}
protected override **** OnLoad(EventArgs e)
{
base.OnLoad(e);
}
}
}
Kullanım
Artık her sayfanızda [*1] ile işaretli bölüm şu şekilde olmalıdır.
public partial class Sayfa : MyNameSpace.MyPageClass
Bu sayede MyPageClass.cs deki tüm js,css,session....vs işlerini Sayfa.aspx için halletmiş olduk.
Sonuç
Bu kullanım şekli herhangi bir olası değişiklikte sizin 100lerce dosya yerine sadece tek bir dosyayı (MyPageClass.cs) güncellemenize ve amacınıza ulaşmanıza olanak sağlar. Kullanalım, kullandıralım:]
using System;
using System.Configuration;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.HtmlControls;
namespace MyNamespace
{
public class MyPageClass : System.Web.UI.Form
{
protected override **** OnInit(EventArgs e)
{
#region Disable ViewState
this.Page.EnableViewState = false;
#endregion
#region Apply default stylesheet
/* Web sayfasında kullanılcak olan style dosyasını set ediyoruz */
this.AddStyleSheet("main.css");
#endregion
/* Web.Config dosyamızdaki değere göre sayfanın başlık bilgisini set ediyoruz */
Page.Header.Title = System.Configuration.ConfigurationManager.AppSetti ngs["APPTITLE"];
/*
* Alttaki bilgiler sayfaların cache' den gelmesini engeller
* Özellikle bir post işleminden sonra bir önceki sayfaya gidilmesi ihtimali büyük sorunlar çıkarabilir
*/
Page.Response.Expires = 0;
Page.Response.AddHeader("Pragma", "no-cache");
Page.Response.CacheControl = "Public";
Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("iso-8859-9");
/* Örnek olması açısından; sayfada kullanılcak script dosyalarını register ediyoruz */
/* System.Configuration.ConfigurationManager.AppSetti ngs["scriptPath"]
* ile Web.Config' de script dosyalarının durduğu klasörün ismini alıyoruz
*/
Clientscript.RegisterClientscriptInclude("script_K EY", System.Configuration.ConfigurationManager.AppSetti ngs["scriptPath"] + "Dosya_Ismi.js");
base.OnInit(e);
}
/* Verilen css dosyasını sayfanın header bilgisine yazan fonksiyon */
protected virtual **** AddStyleSheet(string cssPath)
{
string includeTemplate = "";
/* ConfigurationManager.AppSettings["CssPath"]
* ile Css dosyalarının bulunduğu klsörü öğreniyoruz, Web.Config' den
*/
string includePath = ConfigurationManager.AppSettings["CssPath"] + cssPath;
Page.Header.Controls.Add(new LiteralControl(String.Format(includeTemplate, includePath)));
}
protected override **** OnLoad(EventArgs e)
{
base.OnLoad(e);
}
}
}
Kullanım
Artık her sayfanızda [*1] ile işaretli bölüm şu şekilde olmalıdır.
public partial class Sayfa : MyNameSpace.MyPageClass
Bu sayede MyPageClass.cs deki tüm js,css,session....vs işlerini Sayfa.aspx için halletmiş olduk.
Sonuç
Bu kullanım şekli herhangi bir olası değişiklikte sizin 100lerce dosya yerine sadece tek bir dosyayı (MyPageClass.cs) güncellemenize ve amacınıza ulaşmanıza olanak sağlar. Kullanalım, kullandıralım:]
geceninmavisi- *** FORUM KRAL ÜYE ***
-
Mesaj Sayısı : 160
Yaş : 42
Kayıt tarihi : 07/08/08
|| HAYATTA HER ŞEYİ PAYLAŞAN BİR PLATFORM || TÜRKİYENİN YÜKSELEN YILDIZI || HAYAT BURDA || :: Web Programlama
1 sayfadaki 1 sayfası
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz