Forum
Merhabalar,
http://www.borfin.com.tr/genel/Default.aspx bu sitede ki gibi bir uygumala yapmaya çalışıyorum. Master page de üstte ki linkler mevcut. Herhangi bir sayfa açılınca arkasında ki tablonun rengi beyaz olucak.
arka tarafta ki ovalliği üç sütunlu bir tablo sayesinde yaptım. Şimdi hangi sayfa açıksa onun linkinin üzerinde bulunduğu tablonun beyaz olmasını istiyorum.
Yardımlarınız için teşekkürler.
Her linke id verin veya özel bir değer.
Her sayfayı kontrol edin request.url.absolutepath ile. Gelen değerlere göre masterpage'den css'yi değiştirin.
Bende sizin gibi düşündüm, her linke id zaten verdim de tablolara da verdim, .net içinden ulaşır yaparım diye ama c# içinden tablo nesnelerine erişemiyorum, sunucu kontrolü olmadığı için. Ayrı bir css etiketi tanımladım sayfanın urlsine bakıp değiştiririm diye ancak ulaşamayınca düşündüğümü yapamadım.
Bu kontrole ulaşmanın bir yolu var mıdır?
Örnek tablo kodunuzu koyar mısınız rica etsem.
Merhaba tablonun html kodları aşağıdadır :
<table id="xfeMain" cellpadding="0" cellspacing="0" class="mainmenu">
<tr>
<td class="sol">
</td>
<td class="orta">
<asp:HyperLink ID="hpAnaSayfa" runat="server" CssClass="HpMenu"
NavigateUrl="~/AnaSayfa.aspx" Font-Underline="False" Height="30px"
Width="100%">Ana Sayfa</asp:HyperLink>
</td>
<td class="sag">
</td>
</tr>
</table>
Tabloyu incedikten sonra göreceksiniz bir tablo var ve üç sütunlu. Ortada ki sütunda sayfanın linki var. bunun gibi yanyana 6 tablo link var. Kullanıcı sayfalardan birinin linkini tıkladığında ilgili tablonun rengi değişecek. Linkin font rengini falanda değiştiricem arka planın rengi değişeceği için. Bunları yeni bir css etiketi ile yaparım diyorum ama sayfa açılınca veya sayfadan çıkınca o css yi nasıl tabloya yükleyebilirim bilmiyorum.
Ben olsam td'lere id verirdim. Çünkü direk table'ın elementlerine css'ten ulaşma yolu var mı bilmiyorum. Daha sonra şu şekilde yapabilirsiniz. (cozumbody herhangi bir td'nin id'si olduğunu varsayalım.)
cozumbody.Attributes.CssStyle.Add("background-image", "/images/blabla.gif(jpeg)(png)");
Bunun yanı sıra javascript ile sanırım direk table'a css verebilirsiniz.
Herhangi bir td'nin idsine ulaşamıyorum ki kod ekranından. Table id versem de ulaşamıyorum tdye versemde ulaşamıyorum.
Javascriptten yapabilirim sanırım ama onu bilmiyorum.
FindControl event'ını kullanmalısınız.
Şu şekilde: HtmlTable myTable = Page.Master.FindControl("table_id") as HtmlTable;
Merhaba,
şöyle bir şey denedim:
if (Request.Path.Contains("AnaSayfa.aspx"))
{
HtmlTableCell t1tdsag = Page.Master.FindControl("t1tdsag") as HtmlTableCell;
HtmlTableCell t1tdsol = Page.Master.FindControl("t1tdsol") as HtmlTableCell;
HtmlTableCell t1tdorta = Page.Master.FindControl("t1tdorta") as HtmlTableCell;
t1tdsag.Attributes.Add("class","sagsecili");
t1tdsol.Attributes.Add("class", "solsecili");
t1tdorta.Attributes.Add("class", "ortasecili");
}
tdlere id verdim, eğer pathte ana sayfa varsa tdlerin classlarını belirlemek için ancak sayfa açılırken hata veriyor
Object reference not set to an instance of an object.
bu hatayı alıyorum, bu durumda tdleri göremiyor mu acaba?
td'lerin runat="server" kısımlarını koymadıysanız onlarıda koymalısınız.
Koydum, hatayı biraz araştırınca ama işe yaramadı hala aynı hatayı veriyor.
Merhabalar,
sorunu çözdüm, çalışan kodlar aşağıdadır :
if (Request.Path.Contains("AnaSayfa.aspx"))
{
t1tdsag = new HtmlTableCell();
t1tdsag = Page.Master.FindControl("t1tdsag") as HtmlTableCell;
t1tdsag.Attributes.Add("class", "sagsecili");
}
Öncelikle new diyerek td yi oluşturmak gerekiyormuş, oluşmayan bişeye atama yapmaya çalışıyodum,
Yardımlarınız için teşekkürler.
İlginç, çünkü bu satırda zaten yeni oluşturuyorsunuz. Pek bir farkı yok yani.
HtmlTableCell t1tdsag = Page.Master.FindControl("t1tdsag") as HtmlTableCell;