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

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

  RSS
tulay
(@tulay)
Üye

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.

Alıntı
Gönderildi : 23/08/2010 19:42
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

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.

CevapAlıntı
Gönderildi : 24/08/2010 03:29
tulay
(@tulay)
Üye

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?

CevapAlıntı
Gönderildi : 24/08/2010 11:48
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 24/08/2010 20:21
tulay
(@tulay)
Üye

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.

CevapAlıntı
Gönderildi : 25/08/2010 12:10
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

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. 

CevapAlıntı
Gönderildi : 25/08/2010 14:59
tulay
(@tulay)
Üye

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.

CevapAlıntı
Gönderildi : 25/08/2010 16:54
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

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

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

CevapAlıntı
Gönderildi : 25/08/2010 19:51
tulay
(@tulay)
Üye

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?

CevapAlıntı
Gönderildi : 26/08/2010 14:02
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

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

CevapAlıntı
Gönderildi : 26/08/2010 15:24
tulay
(@tulay)
Üye

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

CevapAlıntı
Gönderildi : 26/08/2010 15:50
tulay
(@tulay)
Üye

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.

CevapAlıntı
Gönderildi : 27/08/2010 11:51
Kadir Avci
(@kadiravci)
Saygın Üye Forum Yöneticisi

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

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

CevapAlıntı
Gönderildi : 30/08/2010 22:40
Paylaş: