Forum

Asp.Net Seçile...
 
Bildirimler
Hepsini Temizle

Asp.Net Seçilen Sayfanın link arka planında ki tablo rengini değiştirmek

13 Yazılar
2 Üyeler
0 Reactions
1,418 Görüntüleme
(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

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.

 
Gönderildi : 23/08/2010 19:42

(@kadiravci)
Gönderiler: 202
Üye
 

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.

 
Gönderildi : 24/08/2010 03:29

(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

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?

 
Gönderildi : 24/08/2010 11:48

(@kadiravci)
Gönderiler: 202
Üye
 

Örnek tablo kodunuzu koyar mısınız rica etsem.

 
Gönderildi : 24/08/2010 20:21

(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

Merhaba tablonun html kodları aşağıdadır :

<table  id="xfeMain" cellpadding="0" cellspacing="0" class="mainmenu">
                        <tr>
                            <td class="sol">
                                &nbsp;</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">
                                &nbsp;</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.

 
Gönderildi : 25/08/2010 12:10

(@kadiravci)
Gönderiler: 202
Üye
 

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. 

 
Gönderildi : 25/08/2010 14:59

(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

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.

 
Gönderildi : 25/08/2010 16:54

(@kadiravci)
Gönderiler: 202
Üye
 

FindControl event'ını kullanmalısınız.

Şu şekilde:  HtmlTable myTable = Page.Master.FindControl("table_id") as HtmlTable;

 
Gönderildi : 25/08/2010 19:51

(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

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?

 
Gönderildi : 26/08/2010 14:02

(@kadiravci)
Gönderiler: 202
Üye
 

td'lerin runat="server" kısımlarını koymadıysanız onlarıda koymalısınız.

 
Gönderildi : 26/08/2010 15:24

(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

Koydum, hatayı biraz araştırınca ama işe yaramadı hala aynı hatayı veriyor.

 
Gönderildi : 26/08/2010 15:50

(@tulay)
Gönderiler: 61
Trusted Member
Konu başlatıcı
 

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.

 
Gönderildi : 27/08/2010 11:51

(@kadiravci)
Gönderiler: 202
Üye
 

İlginç, çünkü bu satırda zaten yeni oluşturuyorsunuz. Pek bir farkı yok yani.

HtmlTableCell t1tdsag = Page.Master.FindControl("t1tdsag") as HtmlTableCell; 

 
Gönderildi : 30/08/2010 22:40

Paylaş: