Ana içeriğe atla

ASP.Net Custom Controls yaparken

ASP.Net ile kendinize ait server control ler hazırlamak istiyorsanız yapmanız gerekenler kısaca şu şekilde.

1 - Elinizdeki Web sitesinin bulunduğu Solution altına bir adet Windows ClassLibrary ekleyin.
2 - websitenize add reference deyip projects sekmesinden library nizi seçin.
3 - Bu class library altına bir adet class ekleyin. (Örneğin adı UTextBox ben textBox yapımını anlatacağım.)
4 - Bu class ı System.Web.UI.WebControls.TextBox sınıfından türetmeniz gerekmektedir ve class ın üst görünümü şu şekilde olmalı


[ControlBuilder(typeof(TextBoxControlBuilder))]
[ValidationProperty("Text")]
[SupportsEventValidation]
[ControlValueProperty("Text")]
[DataBindingHandler("System.Web.UI.Design.TextDataBindingHandler, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[DefaultProperty("Text")]
[DefaultEvent("TextChanged")]
[Designer("System.Web.UI.Design.WebControls.PreviewControlDesigner, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
[ParseChildren(true, "Text")]
[ToolboxData("<{0}:UTextBox ID=\"txt\" runat=server Text=\"\">")]
public class UTextBox : TextBox
{


4 - Bu sınıf altında yer alan property ler de şu şekilde olmalı.
///
/// Alabileceği en kısa uzunluk değeri
///

private int _MinLength = 0;
[DefaultValue(typeof(int), "0")]
[Category("Behavior")]
[Bindable(true)]
[Description("Alabileceği en kısa uzunluk değeri")]
public int MinLength
{
get { return _MinLength; }
set { _MinLength = value; }
}


#region ScrollBarHidden
private bool _ScrollBarHidden = true;
///
/// Scroll Bar n gizli olmas veya olmamas durumu i‡in
///

[DefaultValue(true)]
[Category("Appearence")]
[Bindable(false)]
[Description("ScrollBar ın görünüp görünmemesi")]
public bool ScrollBarHidden
{
get { return _ScrollBarHidden; }
set { _ScrollBarHidden = value; }
}
#endregion

5 - Class ın OnLoad fonksiyonu içerisinde sahanın işlevine göre düzenlemeler yapılır.

a. attribute'lar eklenip çıkartılabilir.

protected override void OnLoad(EventArgs e)
{
if (ScrollBarHidden) this.Attributes.Add("style", "overflow :hidden");
}

b. stil vs değiştirilebilir.


if (!this.ReadOnly)
{
string OnfocusStr = "this.className='" + base.CssClass + "Focus';";
}

c. sayfaya js eklenebilir.

this.Page.RegisterClientScriptBlock vb metodlarla da eklenebilir fakat en güzeli js dosyası register etmesi.

AssemblyInfo.cs ye şu eklenmeli

[assembly: WebResource("CustomControls.GridViewScript.js", "text/javascript")]

OnPreRenderda da şu eklenmeli

string resourceName = "CustomControls.GridViewScript.js";
ClientScriptManager cs = this.Page.ClientScript;
cs.RegisterClientScriptResource(typeof(CustomControls.CustomGridView), resourceName);


6 - PreRender fonksiyonu içerisinde ise sayfanın oluşturulma aşamasının son safhasında düzenlemeler yapabilirsiniz. OnLoad da yaptığınız bazı şeyler burada da yapılabilir. Uzun uzadıya giden ClientID sinin kısaltılması vs vs gibi farklı şeyler de yapılabilir.

Daha derinlere inmek isteyenler için faydalı bir link
Burada da örnek olarak gridview yapılmış

Yorumlar

Bu blogdaki popüler yayınlar

İzmir'de ne yapılır? (alıntı)

Okumanızı şiddetle tavsiye ediyorum. Bir sitede rastladım fakat çok hoşuma gitti. 7 senedir izmirde yaşayan birisi olarak hemen hemen hepsini onaylıyorum. Şimdilik sadece alıntı olarak yayınlıyorum. Belki sonra kendim benzer bir liste oluşturabilirim.   Kendi Yapmış olduğum listeye buradan erişebilirsiniz. İzmir´e Yeni Gelenler İçin 100 Maddede İZMİR 1-İstanbul´dan geldiyseniz, burada da karşı kavramı vardır. Şaşırmayın. 2-Boyoz´un ne olduğunu hemen öğrenin ve evinize yakın bir boyozcu bulun. 3-İlk gördüğünüz kıza yiyecekmiş gibi bakmayın, zira çok var onlardan, alışın. 4-Bu şehirde -özellikle İstanbul´dan geldiyseniz- insanlar birine çarptıklarında özür diler, genelde sabahları "günaydın", akşamları "iyi akşamlar", gün genelindeyse "iyi günler" diyerek güler yüz gösterirler. "Teşekkür ederim" de en çok duyacağınız kelime gruplarından biridir. 5-Daha önceden yediğiniz adı kumru olan sandviçlerin hepsinin dandik olduğunu kabul edi...

HP notebook fn tuşu iptal etme

Eğer siz de benim gibi fonksiyon tuşlarını (F1, F2, .... , F12) çok kullanan birisiyseniz ve hp notebookunuz ile sürekli olarak fn tuşuna basmanız gerekiyorsa, sorunun çözümü oldukça basit. Bilgisayarınızı yeniden başlatıp f10 tuşu ile bios ayarlarınıza girin. System configuration sekmesinden Active Keys seçeneğini disabled konumuna getirin. Kayıt edip çıkın. İşlem tamamdır.

Arkalı Önlü Yazdırma

Yazıcıdan çıktı alırken kağıt israfını önlemek, çok kağıt taşımamak gibi sebeplerle arkalı önlü çıktı almak istiyorsanız teknik şudur: Kağıdın yazdırılan kısmını ve yönünü tespit etmeniz gerekir ki daha sonra yazdırılan kağıtları tekrar yazıcıya koymanız gerekecek. Kendi yazıcınızda bunu anlamak için boş (ya da gereksiz) bir kağıdın bir köşesine kalemle işaret koyun ve herhangi bir deneme sayfası yazdırın, ardından sonuca bakın.  Bendeki yazıcının (Samsung ML-1610) özellikleri şu şekilde: Kağıdın yukarı bakan kısmına yazdırıyor.  Kağıdın üst kısmı içerideki kısım oluyor. Yazdır (Print) dedikten sonra Subset değeri önce odd (tek) sayfalar yazdırılır. Çıkan kağıtlar sırası hiç bozulmadan, (Toplamda tek sayıda sayfa varsa en sonuncu sayfa kenara alınmalı!!!) boş yüzeyleri görünecek şekilde ve kağıdın üst kısmı içeride olacak şekilde yerleştirilir. (Sizde yerleşim farklı olabilir buna dikkat.) Yazdır (Print) dedikten sonra Subset değeri even olanlar Ve REVERSE (TERS) ...