• 28-10-2013, 11:14:42
    #1
    string HaberId = "";
    public static string HaberAdi = "";
    public static string MetaTagDetay = "";

    Page_Load ' a

    Page.Title = HaberAdi;
    Page.MetaDescription = MetaTagDetay;
    Page.MetaKeywords = HaberAdi.Replace(" ", ",");

    yazıyorum sayfada sorun yok geliyor ama title, metatag ilk etapta göstermiyor sayfayı yenileyince gösteriyor ama başkabir ıd nin bilgilerini çekiyor verileri title, Metatag sayfayı 3 -5 defa yenileyince kendi ıdsinin bilgilerini doğru çekiyor.

    doğru olmayan nedir?
    eksik yaptığım birşeymi var?
  • 28-10-2013, 13:40:07
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Metaları nasıl yazdırdığını görebilirsek daha iyi fikir üretiriz.
  • 28-10-2013, 15:19:20
    #3
    yazdığım kadar hocam başka yok, masterpage değil direk kendi detay sayfasına ekliyorum
    .cs sayfasında stringle aldığım değerleri ekliyorum okadar.

    kodların tamamını istiyorsanız

    using System;
    using System.Data;
    using System.Data.SqlClient;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    
    public partial class ilandetay : System.Web.UI.Page
    
    {
        Fonksiyon system = new Fonksiyon();
        public static string Resim = "";
        string HaberId = "";
        public static string HaberAdi = "";
        public static string MetaTagDetay = "";
    
        protected void Page_Load(object sender, EventArgs e)
        {
            Page.Title = HaberAdi;
            Page.MetaDescription = MetaTagDetay;
            Page.MetaKeywords = HaberAdi.Replace(" ", ",");
            
    
            HaberId = Ayarlar.sayikontrol(Ayarlar.Temizle(RouteData.Values["HaberId"].ToString()));
    
            Mansetler();
    
            DataRow dr = system.GetDataRow("Select * from Haberler Where HaberId=" + HaberId);
            if (dr != null)
            {
                HaberAdi = dr["Baslik"].ToString();
                MetaTagDetay = dr["Detay"].ToString();
                ltrlBaslik.Text = HaberAdi;
                ltrlDetay.Text = dr["Detay"].ToString();
    
                if (dr["Onay"].ToString() == "1") ltrlDetay.Text += "<br /><br />Onay";
                if (dr["Vitrin"].ToString() == "1") ltrlDetay.Text += "<br /><br />Vitrin";
                if (dr["Manset"].ToString() == "1") ltrlDetay.Text += "<br /><br />Manset";
                if (dr["Krediyeuygun"].ToString() == "1") ltrlKrediyeuygun.Text += "<img src='img/okey.jpg" + "' align='left' hspace='5' />Krediye Uygun";
                if (dr["Takasaacik"].ToString() == "1") ltrlTakasaacik.Text += "<img src='img/okey.jpg" + "' hspace='5' />Takas Olur";
                ltrlEklenmeTarihi.Text = dr["EklenmeTarihi"].ToString();
    
                ltrlFiyati.Text = dr["Fiyat"].ToString();
                ltrlBanyosayisi.Text = dr["Banyosayisi"].ToString();
                ltrlOdasayisi.Text = dr["Odasayisi"].ToString();
                ltrlMetrekare.Text = dr["Metrekare"].ToString();
                ltrlBinayasi.Text = dr["Binayasi"].ToString();
                ltrlBinadakikatsayisi.Text = dr["Binadakikatsayisi"].ToString();
                ltrlBulundugukat.Text = dr["Bulundugukat"].ToString();
                ltrlKullanimdurumu.Text = dr["Kullanimdurumu"].ToString();
                ltrlIsitma.Text = dr["Isitma"].ToString();
              
                ltrlHit.Text = dr["Hit"].ToString();
                ltrlFiyati.Text = dr["Fiyat"].ToString();
    
                system.cmd("Update Haberler set Hit=Hit+1 Where HaberId=" + HaberId);
    
                      }
            else
                Response.Redirect("Default.aspx");
        }
    
          void Mansetler()
        {
            DataTable dt = system.GetDataTable("Select HaberId,Resim from HaberResimleri where HaberId=" + HaberId);
            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
    
                if (dr != null)
                {
                    Resim = "<img src='HaberResimleri/150/" + dr["Resim"].ToString() + "' align='left' hspace='5' /> ";
    
                }
            }
            rptSlayt.DataSource = dt;
            rptSlayt.DataBind();
        }
        public string Resimler()
        {
            string donen = string.Empty;
    
            string resim = "<a href='HaberResimleri/800/{0}' rel='lightbox'><img src='HaberResimleri/150/{0}' hspace='5' /></a>";
    
            SqlConnection baglanti = system.baglan();
            SqlCommand cmd = new SqlCommand("select * from HaberResimleri where HaberId=" + HaberId, baglanti);
            var dr = cmd.ExecuteReader();
    
            while (dr.Read())
            {
                donen += string.Format(resim, dr["Resim"]);
            }
    
            return "<div style='display:block;margin-bottom:15px;text-align:center;'>" + donen + "</div>";
        }
    }
  • 28-10-2013, 23:13:54
    #4
    1. Page_Load içerisinde neden if(!isPostBack) kontrolün yok. Sayfa her postback olduğunda aynı şeyleri tekrar tekrar yüklüyorsun.
    Ek olarak debug yapmıyor musun kodunu? Page_Load'a bir debug point koyup çok rahat bir şekilde hatanı görebilirsin.
    2. HaberAdi, MetaTagDetay gibi değişkenlerin Page_Load'a ilk girdiğinde zaten null. Yazmaması gayet normal. Onları DataRow'u doldurduktan sonra yazdırıyorsun ve 2. yenilemede zaten artık null olmadığından yazdırıyor.
    Doğru kullanım şekli:
    protected void Page_Load(object sender, EventArgs e)
    {
    	if(!isPostBack)
    	{
    		HaberId = Ayarlar.sayikontrol(Ayarlar.Temizle(RouteData.Values["HaberId"].ToString()));
    
    		Mansetler();
    
    		DataRow dr = system.GetDataRow("Select * from Haberler Where HaberId=" + HaberId);
    		if (dr != null)
    		{
    			HaberAdi = dr["Baslik"].ToString();
    			MetaTagDetay = dr["Detay"].ToString();
    			ltrlBaslik.Text = HaberAdi;
    			ltrlDetay.Text = dr["Detay"].ToString();
    			
    			Page.Title = HaberAdi;
    			Page.MetaDescription = MetaTagDetay;
    			Page.MetaKeywords = HaberAdi.Replace(" ", ",");
    
    			if (dr["Onay"].ToString() == "1") ltrlDetay.Text += "<br /><br />Onay";
    			if (dr["Vitrin"].ToString() == "1") ltrlDetay.Text += "<br /><br />Vitrin";
    			if (dr["Manset"].ToString() == "1") ltrlDetay.Text += "<br /><br />Manset";
    			if (dr["Krediyeuygun"].ToString() == "1") ltrlKrediyeuygun.Text += "<img src='img/okey.jpg" + "' align='left' hspace='5' />Krediye Uygun";
    			if (dr["Takasaacik"].ToString() == "1") ltrlTakasaacik.Text += "<img src='img/okey.jpg" + "' hspace='5' />Takas Olur";
    			ltrlEklenmeTarihi.Text = dr["EklenmeTarihi"].ToString();
    
    			ltrlFiyati.Text = dr["Fiyat"].ToString();
    			ltrlBanyosayisi.Text = dr["Banyosayisi"].ToString();
    			ltrlOdasayisi.Text = dr["Odasayisi"].ToString();
    			ltrlMetrekare.Text = dr["Metrekare"].ToString();
    			ltrlBinayasi.Text = dr["Binayasi"].ToString();
    			ltrlBinadakikatsayisi.Text = dr["Binadakikatsayisi"].ToString();
    			ltrlBulundugukat.Text = dr["Bulundugukat"].ToString();
    			ltrlKullanimdurumu.Text = dr["Kullanimdurumu"].ToString();
    			ltrlIsitma.Text = dr["Isitma"].ToString();
    		  
    			ltrlHit.Text = dr["Hit"].ToString();
    			ltrlFiyati.Text = dr["Fiyat"].ToString();
    
    			system.cmd("Update Haberler set Hit=Hit+1 Where HaberId=" + HaberId);
    
    		}
    		else
    			Response.Redirect("Default.aspx");
    		}
    }
    Tavsiye: Konuların cevaplandıktan sonra değişiklik yapma, seninle aynı sorunu yaşayanlar nasıl çözüldüğünü görsünler.
  • 28-10-2013, 23:54:29
    #5
    rob33n adlı üyeden alıntı: mesajı görüntüle
    1. Page_Load içerisinde neden if(!isPostBack) kontrolün yok. Sayfa her postback olduğunda aynı şeyleri tekrar tekrar yüklüyorsun.
    Ek olarak debug yapmıyor musun kodunu? Page_Load'a bir debug point koyup çok rahat bir şekilde hatanı görebilirsin.
    2. HaberAdi, MetaTagDetay gibi değişkenlerin Page_Load'a ilk girdiğinde zaten null. Yazmaması gayet normal. Onları DataRow'u doldurduktan sonra yazdırıyorsun ve 2. yenilemede zaten artık null olmadığından yazdırıyor.
    Doğru kullanım şekli:
    protected void Page_Load(object sender, EventArgs e)
    {
    	if(!isPostBack)
    	{
    		HaberId = Ayarlar.sayikontrol(Ayarlar.Temizle(RouteData.Values["HaberId"].ToString()));
    
    		Mansetler();
    
    		DataRow dr = system.GetDataRow("Select * from Haberler Where HaberId=" + HaberId);
    		if (dr != null)
    		{
    			HaberAdi = dr["Baslik"].ToString();
    			MetaTagDetay = dr["Detay"].ToString();
    			ltrlBaslik.Text = HaberAdi;
    			ltrlDetay.Text = dr["Detay"].ToString();
    			
    			Page.Title = HaberAdi;
    			Page.MetaDescription = MetaTagDetay;
    			Page.MetaKeywords = HaberAdi.Replace(" ", ",");
    
    			if (dr["Onay"].ToString() == "1") ltrlDetay.Text += "<br /><br />Onay";
    			if (dr["Vitrin"].ToString() == "1") ltrlDetay.Text += "<br /><br />Vitrin";
    			if (dr["Manset"].ToString() == "1") ltrlDetay.Text += "<br /><br />Manset";
    			if (dr["Krediyeuygun"].ToString() == "1") ltrlKrediyeuygun.Text += "<img src='img/okey.jpg" + "' align='left' hspace='5' />Krediye Uygun";
    			if (dr["Takasaacik"].ToString() == "1") ltrlTakasaacik.Text += "<img src='img/okey.jpg" + "' hspace='5' />Takas Olur";
    			ltrlEklenmeTarihi.Text = dr["EklenmeTarihi"].ToString();
    
    			ltrlFiyati.Text = dr["Fiyat"].ToString();
    			ltrlBanyosayisi.Text = dr["Banyosayisi"].ToString();
    			ltrlOdasayisi.Text = dr["Odasayisi"].ToString();
    			ltrlMetrekare.Text = dr["Metrekare"].ToString();
    			ltrlBinayasi.Text = dr["Binayasi"].ToString();
    			ltrlBinadakikatsayisi.Text = dr["Binadakikatsayisi"].ToString();
    			ltrlBulundugukat.Text = dr["Bulundugukat"].ToString();
    			ltrlKullanimdurumu.Text = dr["Kullanimdurumu"].ToString();
    			ltrlIsitma.Text = dr["Isitma"].ToString();
    		  
    			ltrlHit.Text = dr["Hit"].ToString();
    			ltrlFiyati.Text = dr["Fiyat"].ToString();
    
    			system.cmd("Update Haberler set Hit=Hit+1 Where HaberId=" + HaberId);
    
    		}
    		else
    			Response.Redirect("Default.aspx");
    		}
    }
    Tavsiye: Konuların cevaplandıktan sonra değişiklik yapma, seninle aynı sorunu yaşayanlar nasıl çözüldüğünü görsünler.
    teşekkür ederim hocam,
    sorunsuz çalıştı
    tavsiyenizi dikkate alcam.
    tekrar teşekkürler