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.

Flash AS3, ASP.NET and MSSQL connectivity

To connect your flash actionscript project to a database the easiest way is to use dynamically creating XML method. With this code snippet you may load xml file into swf. If you implement MyDataXML.aspx as responsing XML file flash will accept it as an xml file. var loader:URLLoader = new URLLoader(); loader.addEventListener(Event.COMPLETE, loadXML); loader.load(new URLRequest(“ MyDataXML.aspx”)); function loadXML(e:Event):void { xml = new XML(e.target.data); trace(xml); } To make an aspx file responsing XML file this code block you should write into page_load method. System.Web.HttpResponse response = System.Web.HttpContext.Current.Response; response.Buffer = true; response.ClearContent(); response.ClearHeaders(); response.ContentType = "text/xml"; xmldata="xml comes here"; response.Write(xmldata); response.End(); This query sample may help you getting your data from database. This is not obligated. Just select your data however you like....