ASP.NET - Sunucu kontrolü

Sunucu kontrolü, sunucu tarafından anlaşılan etiketlerdir.

Classic ASP'nin sınırlılıkları

Aşağıda belirtilen kod, bir önceki bölümden kopyalanmıştır:

<html>
<body style="background-color:#e5eecc; text-align:center;">
<h2>Hello CodeW3C.com!</h2>
<p><%Response.Write(now())%></p>
</body>
</html>

Yukarıdaki kod, Classic ASP'nin sınırlılıklarını yansıtır: kod blokları, çıktı yapılması gereken yerlere yerleştirilmelidir.

Classic ASP ile, çalıştırılabilir kodun HTML ile ayrılmadığını yapamayız. Bu, sayfanın okunmasını ve bakımını zorlaştırır.

ASP.NET - Sunucu kontrolü

Sunucu kontrolü ile, ASP.NET, yukarıda tanımlanan 'spaghetti kodu' sorunu çözülmüştür.

Sunucu kontrolü, sunucu tarafından anlaşılan etiketlerdir.

Sunucu kontrolü üç türde bulunur:

  • HTML sunucu kontrolü - geleneksel HTML etiketleri
  • Web sunucu kontrolü - Yeni ASP.NET etiketleri
  • Validation sunucu kontrolü - Giriş doğrulaması için kullanılır

ASP.NET - HTML sunucu kontrolü

HTML sunucu kontrolü, sunucu tarafından anlaşılan HTML etiketleridir.

ASP.NET'teki HTML elementleri metin olarak işlenir. Bu elementleri programlanabilir hale getirmek için, bu HTML elementlerine eklenmesi gereken runat="server" özelliğiBu özellik, bu elementin bir sunucu kontrolü olduğunu belirtir. Aynı zamanda, bu sunucu kontrolünü tanımlamak için id özelliğini eklemelisiniz. Bu id, çalışma zamanında sunucu kontrolünü işlemek için kullanılabilir.

Açıklama:Tüm HTML sunucu kontrolü, runat="server" özelliği bulunan <form> etiketi içinde yer almalıdır. runat="server" özelliği, formun sunucuda işlenmesi gerektiğini ve içerdiği kontrollerin sunucu betikleri tarafından erişilebileceğini belirtir.

Aşağıdaki örnekte, .aspx dosyasında bir HtmlAnchor sunucu kontrolü tanımladık. Daha sonra, bir etkinlik işleyicisinde bu HtmlAnchor kontrolünün HRef özelliğini işlemek için bir etkinlik işleyicisi oluşturduk. Page_Load olayı, ASP.NET tarafından anlaşılan olaylardan biri türüdür:

Açıklama:Etkinlik işleyicisi (event handler), belirli bir olay için kod çalıştıran bir alt programdır.

<script runat="server">
Sub Page_Load
link1.HRef="http://www.codew3c.com"
End Sub
</script>
<html>
<body>
<form runat="server">
<a id="link1" runat="server">CodeW3C.com'ı ziyaret et!</a>
</form>
</body>
</html>

İpucu:İşlevsel kod kendiliğinden HTML dışına taşındı.

ASP.NET - Web sunucu kontrolü

Web sunucu kontrolü, sunucu tarafından anlaşılan özel ASP.NET etiketleridir.

HTML sunucu kontrolü gibi, Web sunucu kontrolü de sunucuda oluşturulur, çalışırken runat="server" özelliğine ihtiyaç duyar. Ancak, Web sunucu kontrolü mevcut HTML elemanlarına haritalanmaz, daha karmaşık elemanları temsil eder.

Web sunucu kontrolü oluşturma grameri:

<asp:control_name id="some_id" runat="server" />

Aşağıdaki örnekte, .aspx dosyasında bir Button sunucu kontrolü tanımladık. Daha sonra, buton üzerindeki metni değiştirebilen bir etkinlik işleyicisi oluşturduk:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="Beni tıkladın!"
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Button id="button1" Text="Bana tıkla!" runat="server" OnClick="submit"/>
</form>
</body>
</html>

ASP.NET - Validation sunucu kontrolü

Kullanıcı girişlerini doğrulamak için kullanılan Validation sunucu kontrolü. Kullanıcı girişi doğrulama geçmezse, kullanıcıya bir hata mesajı gösterilir.

Her doğrulama kontrolü belirli bir doğrulama türünü gerçekleştirir (örneğin, belirli bir değeri veya bir aralığı doğrular).

Öntanımlı olarak, Button, ImageButton veya LinkButton'a tıkladığınızda, sayfa doğrulaması otomatik olarak çalışır. Bir düğme kontrolünün tıklanması durumunda doğrulamayı engellemek için CausesValidation özelliğini false olarak ayarlayabilirsiniz.

Validation sunucu kontrolü oluşturma grameri:

<asp:control_name id="some_id" runat="server" />

Aşağıdaki örnekte, .aspx dosyasında bir TextBox kontrolü, bir Button kontrolü ve bir RangeValidator kontrolü tanımladık. Doğrulama başarısız olursa, "Değer 1 ile 100 arasında olmalı!" metni RangeValidator kontrolünde görüntülenir:

<html>
<body>
<form runat="server">
<p>1 ile 100 arasında bir sayı girin:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Gönder" runat="server" />
</p>
<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="Değer 1 ile 100 arasında olmalı!"
runat="server" />
</p>
</form>
</body>
</html>

Bu Örneği Göster