ASP.NET ve JSF’de Visible Olmayan Kontroller için HTML Üretilmeme Sorunu

İpucu : Bildiğiniz gibi ASP.NET’te şayet bir kontrolün Visible property’sine False değeri atarsanız kontrolü sayfada görünmez hale getirirsiniz. Ancak ASP.NET bunu yapabilmek için kontrolün html kodunu hiç üretmemeyi tercih eder. Oysa bu tercih geliştiriciler için bazen sorun teşkil etmektedir.

Eğer geliştirici görünmez olmasına rağmen  kontrolün html koduna ilişkin bir javascript yazmışsa sorun yaşayacaktır. Ya da benzer şekilde html’i üretilmeyen kontrol nedeniyle onun altında duran kontrollerde de yukarıya doğru kayma gözlemlenir. Bunların çözümü; Kontrolü Visible property’si yoluyla değil style attribute’leri ile görünmez hale getirmektir. Örneğin bir buton için :

<asp:Button style=”visibility:hidden” ID=”Button1″ runat=”server” Text=”Button” />      veya

 <asp:Button style=”display:none” ID=”Button1″ runat=”server” Text=”Button” /> olabilir

Bu sayede kontrol artık görünmez olacak ama html de üretecektir. Şüphesiz aynı işlem programatik de yapılmak istenebilir bu durumda :

Button1.Attributes.Add(“style”, “visibility:hidden”);  veya

Button1.Attributes.Add(“style”, “display:none”);     çözümü kullanılabilir.

JSF’de de aynı işlem benzer şekilde yapılabilir :

<h:commandButton id="btnGonder" value="gonder" action="#{userBean.gitAction}" 
    style="visibility:hidden;  width: 120px; height: 30px"></h:commandButton>
Reklamlar

ASP.NET ve JSF’de Visible Olmayan Kontroller için HTML Üretilmeme Sorunu” üzerine bir yorum

Yorumlar kapalı.