selam arkadaslar,
asp.net ile masterpage de bir menum var.
şöyle:
menuogesi1
menuogesi2
menuogesi3
kullanici
--giris
--cikis
login olmamış kişinin sadece giris alt menusunu, login olmus kisinin de sadece cikis altmenusunu gorebilmesini istiyorum.
nasıl yapabilirim?
alternatif yontemler de olabilir.
asp.net menu alt elemanını pasif yapma
7
●1.976
- 11-12-2012, 18:41:39Kimlik doğrulama veya yönetimden onay bekliyor.Session ile giriş kontrolü yap. Kullanıcı giriş yapınca atıyorum Session["asda"] = "basarili"; şeklinde eklersin, daha sonra masterpage'in preInit() eventında bu session'ı kontrol et ve eğer session boş ise girişi değilse çıkışın visible'ını true yap.
Membership kullanıyorsanda loginstatus/logincontrol kullanabilirsin. - 13-12-2012, 13:28:27rob33n kardes,rob33n adlı üyeden alıntı: mesajı görüntüle
dediğini yaptım ancak bazı eksiklikler var. mesela masterpage de preinit yok. init,prerender var.diğer sayfalarda mesela default.aspx sayfalarında preinit var.
yaptığımı sana şöyle söyleyeyim:
masterpage e loginplaceholder adında bir placeholder ekledim, içine de iki adet txtbx,bir de buton(kullanıcıadı,şifre,gönder). butona session kontrolü ekledim ve bunu page_load a yazdım. böylelikle tüm sayfalardan görülebiliyor.
login olan kişinin artık bu loginplaceholder daki txtbox ve butonları görmesini istemiyorum. orada bir de label var. giriş yapan kişiye hoşgeldin vs diye ismiyle karşılama yapacak.
ancak ne yaparsam yapayım bir türlü gizleme olayını yapamadım(gerek txtleri gerekse de diğer label olayını)
acaba farklı bir yere mi yazmam gerekiyor bunu?
fikrin var mı? varsa biraz daha detaylı anlatabilir misin?
bu arada membership kullanımıyorum, db den kendi user ve pass alanlarım var onları kontrol ediyorum.
not: alt menuyu gizleyemeyince placeholder ile çözeyim istedim onun için loginplaceholder ekledim. alt menu gizleme yöntemi daha basitse eğer placeholder ı kaldırabilirim. - 13-12-2012, 15:02:11Ahh pardon, preInit'i override yapıcaksın.
protected override void OnPreInit(EventArgs e) { base.OnPreInit(e); MasterPage master = this.Master; // bu kısımda normal şekilde istediğin kontrollerin visible'larını true veya false yapabilirsin. }Lifecycle event'larını incelersen istediğin şeylere daha çabuk erişirsin.
http://msdn.microsoft.com/en-us/libr...fecycle_events - 13-12-2012, 16:51:49bu verdiğin kodu masterpage de mi yoksa diğer sayfalarımda mı yapacağım?rob33n adlı üyeden alıntı: mesajı görüntüle
- 14-12-2012, 15:29:53hocam son bir soru sorayım seni daha fazla rahatsız etmeden.rob33n adlı üyeden alıntı: mesajı görüntüle
ben vb ile kodluyorum, verdiğin kodları http://converter.telerik.com/default.aspx ile convert ettiğimde
aşağıdaki sonucu alıyorum ancak masterpage de "OnPreInit" yok,init,load,prerender,unload,disposed,databindin g vs var
Protected Overrides Sub OnPreInit(e As EventArgs) MyBase.OnPreInit(e) Dim master As MasterPage = Me.Master ' bu kısımda normal şekilde istediğin kontrollerin visible'larını true veya false yapabilirsin. End Sub - 14-12-2012, 16:50:40Kendine bir basepage class'ı yaratıp içerisine yazıp hook et o zaman preinit event'ını. Bunu şu şekilde yapabilirsin.
http://odetocode.com/blogs/scott/arc...-pre_init.aspx
