Ana SayfaBlogHakkımdaİletişim

Setting Client Ids

08.01.2010 00:40

ASP.NET tarafından üretilmiş HTML kontrollerine ClientID özelliğinden ulaşmak mümkün. <asp:TextBox runar=”server” ID=”txtSubject” />
şeklinde tanılanmış bir textboxın çıktısı aşağıdaki gibi olmaktadır


<input type=”text” id=”txtSubject” name=”txtSubject” />


Bu kontol GridView gibi tekrarlanabilir ASP.NET kontrolünün içinde olduğunda başına içinde bulunduğu kontrolün öneki sonunada artan bir sayı ifadesi gelmektedir.
MasterPage, UserControl, Panel gibi katman ve gruplamada kullanılan kontrollerin içinde olduğu bir texbox ın ClientID değeri aşağıdaki gibi olabilir


<input name="ctl00$cphContentLeft$lvLogin$wzdLogin$UserName" type="text" id="ctl00_cphContentLeft_lvLogin_wzdLogin_UserName" />


Oldukça karışık değil mi ? Bu kontrole istemci taraflı bir script yazmak istendiğinde birkaç çözümü olsada zor hepside zor bir yöntemdir.  JavaScript kodu içinde <%= txtName.ClientID %> eklenmesi gibi. Bu durumda spagetti kod denen karmamık kod oluşturulmuş olur ve yazmasıda yönetmeside maliyetlidir.


ASP.NET 4.0 da bu soruna çözüm olarak kontrollere ClientIDMode özelliği eklemiştir. AutoID, Static, Predictable ve Inherit değerleri atanabilir. Şimdi bu değerlerin nasıl bir çıktı ürettiklerini inceleyelim.

  • AutoID : Önceki ASP.NET sürümleri gibi çalışmasını sağlar.
  • Static : Kontrolün ID özelliğine atanan değeri hiçbir manüplasyondan geçirmeden aynen istemci tarafına gönderir.
  • Predictable : Bu genellikle GridView gibi tekrar eden kontrollerin içindeki kontrollerde kullanılır. Taşıyıcı kontrolde ClientIDRowSuffix tanımlanmalıdır. Örneğin GridView kullanılmışsa GridView’in ClientIDRowSuffix  özelliğine DataKey olarak kullanılan alan belirtilmelidir ki kontrol tekrar edeceğinden oluşutulacak ClientID nin benzersiz olabilsin.
  • Inherit : İçinde bulunduğu taşıyıcı kontrolde belirtilen değeri alır.


ClientIDMode özelliği @Page deklarasyonunda yada web.config içinde de belirtilebilir.

Bu yazı 147 kere okundu.

Yorumlar

Yorum Ekle

sen dinliyorum ??

Ad Soyad ( kimlik arayışındaki ergenler nick girebilir )

Web Site ( http ile başlayan ! )

E-posta ( spam ve reklam göndermek için )

Yorum ( XSS atack scriptleri eklenecek alan )

Blog yazılarına geri dön