ASP.NET ile Server Control
Asp.net uygulamalarında tıpkı windows uygulamalarında olduğu gibi kendi kontrollerinizi de oluşturabilirsiniz. Tabi bu kontrolleri oluştururken hazır kontrollerden yararlanabilir yada en baştan kendiniz oluşturabilirsiniz.
Asp.Net’te 2 farklı kontrol oluşturabilirsiniz.
- UserControl:ascx uzantılı kontrolleri web uygulamanıza add new item diyerek dahil edip istediğiniz gibi tasarlıyabilirsiniz.Daha sonra solution explorer’dan sürükleyip istediğinize yere yerleştirebilirsiniz.
- ServerControl: Server kontrolleri User Control lere göre daha detaylıdır. User Control lerde olduğu gibi tasarım yolu ile yapamazsınız. Oluşturduğunuz kontrol’un HTML çıktısını yazmanız gerek.
Örnek: Sayfanızda kullanacağınız arama butonu ve düğmesi yeralan örnek bir kontrol oluşturalım.
Kod:
[DefaultProperty("Text")]
[ToolboxData("<{0}:SNNAramaTexButton runat=server>")],
//Kontrolleri sürükleyip bıraktığında sayfanızda bıraktığınızdaki görünümü
[Designer(typeof(System.Web.UI.Design.HtmlControlDesigner))]
public class SNNAramaTexButton : WebControl,IPostBackEventHandler
{
public event EventHandler DugmeyeBasildi;
protected virtual void OnDugmeyeBasildi(EventArgs e)
{
if (DugmeyeBasildi != null)
{
DugmeyeBasildi(this, e);
}
}
[Bindable(true)]
[Category("Appearance")]
[DefaultValue("Ara")]
[Localizable(true)]
public string AraDugmesi
{
get
{
String s = (String)ViewState["AraDugmesi"];
return ((s == null) ? "[" + this.ID + "]" : s);
}
set
{
ViewState["AraDugmesi"] = value;
}
}
protected override void RenderContents(HtmlTextWriter output)
{
//Table Tagı açılıyor ve gerekli ayarlar yapılıyor.
output.WriteBeginTag(HtmlTextWriterTag.Table.ToString());
output.WriteAttribute("width", "170px");
output.WriteAttribute("cellspacing", "0");
output.WriteAttribute("cellpadding", "0");
output.Write(">");
//Tr ile ilk satır oluşturuluyor.
output.WriteFullBeginTag(HtmlTextWriterTag.Tr.ToString());
//Td ile ilk satırın ilk sutunu oluşturuluyor.
output.WriteBeginTag(HtmlTextWriterTag.Td.ToString());
output.WriteAttribute("width", "150px");
output.Write(">");
//text alanı yerleştiriliyor.
output.WriteBeginTag(HtmlTextWriterTag.Input.ToString());
output.WriteAttribute("type", "text");
output.WriteAttribute("value", "arama");
output.Write("/>");
output.WriteEndTag(HtmlTextWriterTag.Td.ToString());
output.WriteBeginTag(HtmlTextWriterTag.Td.ToString());
output.WriteAttribute("width", "20px");
output.Write(">");
output.WriteBeginTag(HtmlTextWriterTag.Input.ToString());
output.WriteAttribute("type", "submit");
output.WriteAttribute("value", AraDugmesi);
output.WriteAttribute("name", this.UniqueID);
output.Write("/>");
output.WriteEndTag(HtmlTextWriterTag.Td.ToString());
output.WriteEndTag(HtmlTextWriterTag.Tr.ToString());
output.WriteEndTag(HtmlTextWriterTag.Table.ToString());
}
public void RaisePostBackEvent(string eventArgument)
{
OnDugmeyeBasildi(new EventArgs());
}
}
Uygulamayı derlediğinizde oluşan dll dosyasını Web Uygulamanızda Choose Items diyerek projenize dahil edin.
Sinan Uçar
snn@zirvedekibeyinler.net