13 Kasım 2007 Salı

Asp.Net - Jscript ile sayfa üzerindeki bir kontrolü gizlemek (invisible)

Örnegimizde bir dropdownlist ve bir linkbutton kontrolü kullaniyoruz.

CodeBehind sayfamizda öncelikle drowpdownlist kontrolümüzün attribute'ne onchange event'nde hangi JScript fonksiyonun cagrilcagini belirtiyoruz.

ddlNation.Attributes("onchange") = "javascript:checkSelectedNation(this, " & DBConstants.Land.SCHWEIZ & ");"


checkSelectedNation fonksiyonu parametre olarak ddlNation (dropdownlist) kontrolünü ve birde kodumuz icinde tanimlamis oldugumuz constant bir degeri aliyor.

aspx sayfamiz icine yazacagimiz JScript kodu ise söyle olacak:

function checkSelectedNation(dropDown, schweizID)
{
var selectedVal = dropDown.value;
var btnGebOrt = document.getElementById('<%=btnSelCHGebOrt.ClientID%>');

if (selectedVal == schweizID)
{
btnGebOrt.style.display="";
}else
{
btnGebOrt.style.display="none";
}
}

----

dropdownlist kontrolünde secilen deger bizim yolladiigmiz constant degere esit ise btnSelCHGebOrt button kontrolü görülecek. Aksi durumda ise gizlenecek.

Burda önemli bir durum var. Örnegin sayfa ilk yüklenirken DB den gelen "ddlNation" in degerine göre, btnSelCHGebOrt konrolümüzü yine gizlicez yada göstericez. Bu durumda btnSelCHGebOrt kontrolünün visible özelligini kullanirsak, false set ettigimiz durumda, daha sonra kullanacagimiz JScript fonksiyonumuz calismicakdir. Bunuun yerine ilk yüklemede codebehind' da söyle bir kullanim vardir.

Kontolü gizlemek icin:

btnSelCHGebOrt.Style.Item("display") = "none"

Kontolü göstermek icin:
btnSelCHGebOrt.Style.Item("display") = ""

Hiç yorum yok: