<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>asp.net, jquery ve diğer web teknolojileri üzerine &#187; javascript</title>
	<atom:link href="http://www.apostylee.com/tag/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apostylee.com</link>
	<description>asp.net, jquery ve diğer web teknolojileri üzerine, biraz da kişisel.</description>
	<lastBuildDate>Mon, 10 Oct 2011 11:49:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Google Maps çoklu Marker ekleme</title>
		<link>http://www.apostylee.com/google-maps-coklu-marker-ekleme/</link>
		<comments>http://www.apostylee.com/google-maps-coklu-marker-ekleme/#comments</comments>
		<pubDate>Mon, 23 May 2011 14:51:52 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Diğer Diller]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[function]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[maps]]></category>
		<category><![CDATA[marker]]></category>
		<category><![CDATA[setInterval]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=1514</guid>
		<description><![CDATA[Google maps api kullanarak bir noktayı işaretleme olayına marker diyoruz. Bir raporda harita üzerinde bayilerimizi bulundukları şehirlere göre işaretlemem gerekiyordu fakat şehir adeti arttıkça aranan şehrin bulunamaması gibi bir problem oluşuyor. Bunun sebebi de şehirlerin isimlerini bir servise gönderip geriye koordinatları almakla ilgili.. Google map api de bulunan getLatLng fonksiyonu http://maps.google.com/maps/geo?output=json&#38;oe=utf-8&#38;q=TRABZON servisinden şehrin bilgilerini istiyor ve json olarak [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://code.google.com/intl/tr-TR/apis/maps/index.html" target="_blank">Google maps api</a> kullanarak bir noktayı işaretleme olayına marker diyoruz. Bir raporda harita üzerinde bayilerimizi bulundukları şehirlere göre işaretlemem gerekiyordu fakat şehir adeti arttıkça aranan şehrin bulunamaması gibi bir problem oluşuyor. Bunun sebebi de şehirlerin isimlerini bir servise gönderip geriye koordinatları almakla ilgili..<a href="http://www.apostylee.com/wp-content/uploads/2011/05/googlemapapi.jpg"><img class="size-large wp-image-1518 aligncenter" title="googlemapapi" src="http://www.apostylee.com/wp-content/uploads/2011/05/googlemapapi-600x365.jpg" alt="" width="600" height="365" /></a><br />
<span id="more-1514"></span><br />
Google map api de bulunan <strong>getLatLng</strong> fonksiyonu <a href="http://maps.google.com/maps/geo?output=json&amp;oe=utf-8&amp;q=K%C3%9CTAHYA">http://maps.google.com/maps/geo?output=json&amp;oe=utf-8&amp;q=TRABZON</a> servisinden şehrin bilgilerini istiyor ve json olarak bu bilgi geri dönüyor.</p>
<pre class="brush: jscript; title: ; notranslate">
{
  &quot;name&quot;: &quot;trabzon&quot;,
  &quot;Status&quot;: {
    &quot;code&quot;: 200,
    &quot;request&quot;: &quot;geocode&quot;
  },
  &quot;Placemark&quot;: [ {
    &quot;id&quot;: &quot;p1&quot;,
    &quot;address&quot;: &quot;Trabzon, Türkiye&quot;,
    &quot;AddressDetails&quot;: {
   &quot;Accuracy&quot; : 4,
   &quot;Country&quot; : {
      &quot;AdministrativeArea&quot; : {
         &quot;AdministrativeAreaName&quot; : &quot;Trabzon&quot;,
         &quot;Locality&quot; : {
            &quot;LocalityName&quot; : &quot;Trabzon&quot;
         }
      },
      &quot;CountryName&quot; : &quot;Türkiye&quot;,
      &quot;CountryNameCode&quot; : &quot;TR&quot;
   }
},
    &quot;ExtendedData&quot;: {
      &quot;LatLonBox&quot;: {
        &quot;north&quot;: 41.0336756,
        &quot;south&quot;: 40.9663072,
        &quot;east&quot;: 39.7973630,
        &quot;west&quot;: 39.6693036
      }
    },
    &quot;Point&quot;: {
      &quot;coordinates&quot;: [ 39.7333333, 41.0000000, 0 ]
    }
  } ]
}
</pre>
<p>Gelen bu bilgideki koordinatı alıp işaretlemek istediğimiz noktayı işaretliyoruz yani marker ekliyoruz. Bu istek sayısı arttığında şehirler bulunanamamaya başlıyor. Belkide bir ayarı vardır ama ben bu ayarı bulamadım ve laz işi bir çözümle olayı halettim :)</p>
<p>Nasıl mı ? <strong><a href="http://www.w3schools.com/jsref/met_win_setinterval.asp" target="_blank">setInterval()</a></strong> kullanarak. Bu javascript fonksiyonu bir kodu belirlediğimiz zaman kadar bekleyerek yeniden tekrarlatır, zamanı mili saniye cinsinden alır. Olayımız şu; Google Map servisini belirleyeceğimiz zaman aralıklarında kullanıp, aynı anda birden çok isteğin gitmesine engel olacağız. Ben 300mili saniye de şehirleri başarılı bir şekilde harita üzerine işaretletebildim, bu süreyi gözlemlerinize göre değiştirebilirsiniz.</p>
<pre class="brush: jscript; title: ; notranslate">
            var sehirler = &quot;TRABZON;RİZE;ORDU;GİRESUN;GÜMÜŞHANE;ERZURUM;SAMSUN;ARTVİN;ERZİNCAN;VAN;TOKAT;KARS;AĞRI;ÇORUM;BAYBURT;İSTANBUL;IĞDIR;ZONGULDAK;DÜZCE;AMASYA;ANKARA;ANTALYA;ARDAHAN;DİYARBAKIR;BATMAN;GAZİANTEP;GÜRCİSTAN;HAKKARİ;KIRŞEHİR;MUŞ;KAHRAMANMARAŞ;KARABÜK;SİİRT;SİNOP;SİVAS;UŞAK;İZMİR;MALATYA;NİĞDE,KONYA;ESKİŞEHİR;KÜTAHYA;AYDIN;MANİSA&quot;;
            var sehir = sehirler.split(';');
            var j = 0;
            var x = setInterval(function () {
                if (j == sehir.length) {
                    clearInterval(x); // tüm şehirleri işaretledikten sonra intervali temizliyoruz, yani durduruyoruz.
                }
                showAddress(sehir[j]);
                j++;
            }, 300);
</pre>
<p>Bu arada <strong>setInterval()</strong> fonksiyonu şu şekillerde kullanılıyor.</p>
<pre class="brush: jscript; title: ; notranslate">
           setInterval(&quot;alert('test')&quot;,1000);
           setInterval(function(){
               // buraya kodlarımız geliyor.
           },1000);
</pre>
<p>Örneği <strong><a href="http://www.apostylee.com/wp-content/uploads/2011/05/index.htm" target="_blank">buradan indirip</a></strong>, api keyi değiştirip çalıştırabilirsiniz.</p>
<div class="shr-publisher-1514"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/google-maps-coklu-marker-ekleme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GridView ile çalışmak ve püf noktaları</title>
		<link>http://www.apostylee.com/gridview-ile-calismak-ve-puf-noktalari/</link>
		<comments>http://www.apostylee.com/gridview-ile-calismak-ve-puf-noktalari/#comments</comments>
		<pubDate>Fri, 22 Oct 2010 08:46:44 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Asp.Net]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[csss]]></category>
		<category><![CDATA[footer]]></category>
		<category><![CDATA[gridview]]></category>
		<category><![CDATA[header]]></category>
		<category><![CDATA[ipucu]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[row]]></category>
		<category><![CDATA[sayfalama]]></category>
		<category><![CDATA[style]]></category>

		<guid isPermaLink="false">http://www.apostylee.com/?p=958</guid>
		<description><![CDATA[Uzun bir aradan sonra kontrollerimizi tanımaya kaldığımız yerden devam ediyoruz. Ana hatlarıyla anlatmaya çalışacağım kontrol namı diğer GridView1 :) Çok fazla detaya girmeden en sık kullanılan özelliklerini ve jQuery ile birlikte neler yapabileceğimize vakit kaybetmeden bir göz atalım. GridView, bir veri kaynağından gelen veriyi ekrana liste şeklinde basan kontrolümüz. Bir çok yerde kullandığımız bu kontrolde, sayfalama ve sıralama işlemlerini rahatlıkla yapabiliyoruz. [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Uzun bir aradan sonra <a href="http://www.apostylee.com/asp-net-kontrolleri-bolum-1/" target="_blank">kontrollerimizi</a> tanımaya kaldığımız yerden devam ediyoruz. Ana hatlarıyla anlatmaya çalışacağım kontrol namı diğer GridView1 :) Çok fazla detaya girmeden en sık kullanılan özelliklerini ve jQuery ile birlikte neler yapabileceğimize vakit kaybetmeden bir göz atalım.</p>
<p>GridView, bir veri kaynağından gelen veriyi ekrana liste şeklinde basan kontrolümüz. Bir çok yerde kullandığımız bu kontrolde, sayfalama ve sıralama işlemlerini rahatlıkla yapabiliyoruz.<span id="more-958"></span></p>
<p>Kontrolümüzü <strong>&lt;asp:GridView runat=&#8221;server&#8221; ID=&#8221;GridView1&#8243;&gt;&lt;/asp:GridView&gt; </strong>şeklinde ekliyoruz.</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-varsayilan.jpg"><img class="alignnone size-large wp-image-966" title="gridview-varsayilan" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-varsayilan-600x441.jpg" alt="" width="600" height="441" /></a></p>
<p>Gridimizi şekillendirmek için ana hatlara sitil tanımlaması yapabiliyoruz. Nedir bu ana hatlar, <strong>header</strong>, <strong>row</strong>, <strong>footer</strong> ve <strong>pagerstyle</strong>. Bunları elle manuel stil tanımlaması yapabildiğimiz gibi style classı da atayabiliyoruz. Eğer elle stil yazarsak gridimizi oluşturan html çıktısında fazlasıyla kod tekrarı olur, bu ve yönetilebilirlikten dolayı class atamak en performanslı çözüm olacaktır.</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;asp:GridView runat=&quot;server&quot; ID=&quot;GridView1&quot;&gt;
        &lt;HeaderStyle/&gt;
        &lt;RowStyle/&gt;
        &lt;AlternatingRowStyle/&gt;
        &lt;FooterStyle/&gt;
        &lt;PagerStyle/&gt;
    &lt;/asp:GridView&gt;
</pre>
<p>Şeklinde gridimizi oluşturuyoruz, sonrasında herbir kalıp için css mizi yazıyoruz.</p>
<pre class="brush: css; title: ; notranslate">
    &lt;style type=&quot;text/css&quot;&gt;
        body{font-size:12px;font-family:Arial}
        /* GridView */
        .grid caption, tbody, tfoot, thead, tr, th, td,form {
	        margin: 0;
	        padding: 2px;
	        border: 0;
	        outline: 0;
	        color:#333;
	        font-size:12px;
        }
        .grid a:hover{color:#008aeb}
        .grid{border:none;width:100%;}
        .grid .header{background-color:#e5e5e5;height:30px;cursor:pointer;text-align:left}
        .grid .pager table{background-color:#333333;margin:5px auto}
        .grid .pager table td{font-size:15px;background-color:#3e3e3e}
        .grid .pager table td span{display:block;width:25px;height:20px;text-align:center;color:#868686;background-color:#333333}
        .grid .pager table td a{display:block;width:25px;height:20px;text-align:center;color:White}
        .grid .pager table td a:hover{background-color:#333333}
        .grid .row{}
        .grid .alternate{background-color:#f6f6f6;}
        .grid .alternate:hover,.grid .row:hover{background-color:#a8a8a8;cursor:pointer;}
        .grid .footer{background-color:#e3f1f8;font-weight:bold;}
    &lt;/style&gt;
</pre>
<p>Son olarak gridimize class ları veriyoruz ve sitil olayını sonlandırıyoruz.</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;asp:GridView runat=&quot;server&quot; ID=&quot;GridView1&quot; CssClass=&quot;grid&quot;&gt;
        &lt;HeaderStyle CssClass=&quot;header&quot; /&gt;
        &lt;RowStyle CssClass=&quot;row&quot; /&gt;
        &lt;AlternatingRowStyle CssClass=&quot;alternate&quot; /&gt;
        &lt;FooterStyle CssClass=&quot;footer&quot; /&gt;
        &lt;PagerStyle CssClass=&quot;pager&quot; /&gt;
    &lt;/asp:GridView&gt;
</pre>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-css.jpg"><img class="alignnone size-large wp-image-959" title="gridview-css" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-css-600x298.jpg" alt="" width="600" height="298" /></a></p>
<p>Gördüğünüz gibi çok kolay bir şekilde gridimizi şekillendirdik. Hız kesmeden birde sayfalama işleminin nasıl yapıldığına bir bakalım. Bunun için ilk önce gridimizin sayfalama özelliğini <strong>AllowPaging=&#8221;true&#8221;</strong> diyerek aktif ediyoruz. Sonrasında olaylar (events) kısmından <strong>onpageindexchanging </strong>olayına çift tıklıyor ve ilgili olayı gerçekleştirecek methodu oluşturuyoruz. Kodumuz şu şekilde..</p>
<pre class="brush: csharp; title: ; notranslate">
    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex; // yeni sayfa indexini gridimizin PageIndex değerine setliyoruz.
        GridViewDoldur(); //gridimizi tekrar dolduruyoruz.
    }
    </pre>
<p>Kodlarımızın tamamı şu şekilde.</p>
<pre class="brush: xml; title: ; notranslate">
        &lt;asp:GridView runat=&quot;server&quot; ID=&quot;GridView1&quot; CssClass=&quot;grid&quot; AllowPaging=&quot;true&quot; onpageindexchanging=&quot;GridView1_PageIndexChanging&quot;&gt;
            &lt;HeaderStyle CssClass=&quot;header&quot; /&gt;
            &lt;RowStyle CssClass=&quot;row&quot; /&gt;
            &lt;AlternatingRowStyle CssClass=&quot;alternate&quot; /&gt;
            &lt;FooterStyle CssClass=&quot;footer&quot; /&gt;
            &lt;PagerStyle CssClass=&quot;pager&quot; /&gt;
        &lt;/asp:GridView&gt;
    </pre>
<pre class="brush: csharp; title: ; notranslate">
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GridViewDoldur();
        }
    }

    protected void GridViewDoldur() {
        GridView1.DataSource = db.DTGetir(&quot;Select top 100 * from EKOTEKNOBAYILOG order by id desc&quot;);
        GridView1.DataBind();
    }

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        GridView1.PageIndex = e.NewPageIndex;
        GridViewDoldur();
    }
    </pre>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-sayfalama.jpg"><img class="alignnone size-large wp-image-964" title="gridview-sayfalama" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-sayfalama-600x330.jpg" alt="" width="600" height="330" /></a></p>
<p>2 satırda sayfalama işlemimizide yapmış olduk. Bu şekilde ki bir sayfalama işlemi küçük projelerde rahatlıkla kullanılabilir fakat kayıt sayısı arttıkça performansda düşer. Neden düşer ? Çünkü ilk anda veri kaynağındaki tüm veriyi önce gridimize yüklüyoruz ve sayfalamayı grid içerisinde yapıyoruz. Bu durumun tersi olması durumunda performans artacaktır. Şimdide footer yani gridin en alt kısmının kullanıma bir bakalım. Neden footer kullanmamız lazım onuda hemen söyleyeyim. İlk sebep, hizalama problemlerinin çıkmaması ve haliyle çok daha derli toplu bir görüntü elde etmemiz. İkinci ve bence en önemlisi sebep ise gridview içerisindeki veriyi word, excel yada farklı bir formatta dışarı aktarmak istediğimizde hiç bir tasarımsal sıkıntının doğmaması. Footerı göstermek için ilk önce <strong>ShowFooter=&#8221;true&#8221;</strong> yapıyoruz. Artık footerimizi kullanabiliriz. Mantığını anlamak adına bir örnek yapalım.</p>
<pre class="brush: csharp; title: ; notranslate">
    protected void GridViewDoldur() {
        GridView1.DataSource = db.DTGetir(&quot;Select top 10 * from EKOTEKNOBAYILOG order by id desc&quot;);
        GridView1.DataBind();

        decimal toplamSayi = 0; //burada basit bir toplama işlemi yapıyoruz. 6. sutundaki verileri alt alta topluyoruz.
        for (int i = 0; i &lt; GridView1.Rows.Count; i++)
        {
            toplamSayi += Convert.ToDecimal(GridView1.Rows[i].Cells[6].Text);
        }

        GridView1.FooterRow.Cells[3].Text = &quot;Toplam: &quot; + GridView1.Rows.Count + &quot; kayıt.&quot;; // kaçtane kayıt olduğunu footerımızın 3. sutununa yazıyoruz.
        GridView1.FooterRow.Cells[6].Text = toplamSayi.ToString(); // topladığımız değerleri footerdaki 6. sutuna yazıyoruz.
    }
    </pre>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-footer.jpg"><img class="alignnone size-large wp-image-960" title="gridview-footer" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-footer-600x330.jpg" alt="" width="600" height="330" /></a></p>
<p>Görüldüğü üzere footer kullanımıda oldukça basit. Herşey gayet derli toplu ve kontrolümüz altında. Şuana kadar ki örneklerimizi gridviewımızı otomatik doldurarak yaptık, şimdide veri kaynağından gelen veriyi nasıl özelleştirebiliriz buna bir bakalım. İlk önce sutunlarımızı kişiselleştirip istediğimiz sutunları alalım. Bu işlem için önce <strong>AutoGenerateColumns=&#8221;false&#8221;</strong> yapmamız gerekiyor, bunun nedenide bu işlemi biz manuel olarak elle yapacak olmamız. Örnekte kendi verikaynağımdaki isimleri kullanacağım</p>
<pre class="brush: xml; title: ; notranslate">
        &lt;asp:GridView runat=&quot;server&quot; ID=&quot;GridView1&quot; CssClass=&quot;grid&quot; ShowFooter=&quot;true&quot; AutoGenerateColumns=&quot;false&quot;&gt;
            &lt;HeaderStyle CssClass=&quot;header&quot; /&gt;
            &lt;RowStyle CssClass=&quot;row&quot; /&gt;
            &lt;AlternatingRowStyle CssClass=&quot;alternate&quot; /&gt;
            &lt;FooterStyle CssClass=&quot;footer&quot; /&gt;
            &lt;PagerStyle CssClass=&quot;pager&quot; /&gt;

            &lt;Columns&gt;
                &lt;asp:BoundField DataField=&quot;id&quot; HeaderText=&quot;Id&quot; /&gt;
                &lt;asp:BoundField DataField=&quot;tarih&quot; HeaderText=&quot;Tarih&quot; /&gt;
                &lt;asp:BoundField DataField=&quot;sessionid&quot; HeaderText=&quot;Oturum Kimliği&quot; /&gt;
            &lt;/Columns&gt;

        &lt;/asp:GridView&gt;
    </pre>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-manuelsutun.jpg"><img class="alignnone size-large wp-image-963" title="gridview-manuelsutun" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-manuelsutun-600x193.jpg" alt="" width="600" height="193" /></a></p>
<p>Gördüğünüz üzere <strong>Columns </strong>adında bir bölüm oluşturup altına istediğimiz sutunları tanımladık. Şimdi verimizi biçimlendirelim (format). Ne demek bu ? Tarih, sayı vb.. verileri kendi ihtiyacımız doğrultusunda düzenleyebilmemize olanak sağlayan yapılardır. Örneğin; veritabanından gün/ay/yıl şeklinde gelen bir tarihi ay.gün.yıl şekline çevirmek gibi.. Burada şöyle bir püf noktası bulunuyor, verikaynağında ki veri tipinin tarih yada sayı olması gerekiyor. Yani veri kaynağında string şeklindeki bir tarihe yada sayıya direk biçimlendirme yapamıyoruz. Kendi oluşturduğumuz sutunlarda DataFormatString özelliğini kullanarak çok kolay bir şekilde istediğimiz biçimlendirmeyi rahatlıkla yapabiliyoruz. <strong>DataFormatString</strong>=&#8221; 0:n}&#8221;, DataFormatString=&#8221;{0:MM.dd.yyyy}&#8221; gibi.. Biçimlendirme işlemleri ve parametleri hakkında <a href="http://www.csharpnedir.com/articles/read/?filter=&amp;author=86&amp;cat=cs&amp;id=486&amp;title=String.Format%20Fonksiyonu" target="_blank">burayı</a> ziyaret edebilirsiniz.</p>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-format.jpg"><img title="gridview-format" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-format-600x193.jpg" alt="" width="600" height="193" /></a></p>
<p>Herşey iyi güzel ama verikaynağında olmayan bir alanı gridimize nasıl ekleyeceğiz diye sorabilirsiniz. Bu noktada imdadımıza <strong>TemplateField </strong>koşuyor. Hemen örneğimize bakalım.</p>
<p><span style="font-family: Consolas, Monaco, 'Courier New', Courier, monospace; line-height: 18px; font-size: 12px; white-space: pre;">
<pre class="brush: xml; title: ; notranslate">&lt;/span&gt;
&lt;pre&gt;
        &lt;asp:GridView runat=&quot;server&quot; ID=&quot;GridView1&quot; CssClass=&quot;grid&quot; AutoGenerateColumns=&quot;false&quot;&gt;
            &lt;HeaderStyle CssClass=&quot;header&quot; /&gt;
            &lt;RowStyle CssClass=&quot;row&quot; /&gt;
            &lt;AlternatingRowStyle CssClass=&quot;alternate&quot; /&gt;
            &lt;FooterStyle CssClass=&quot;footer&quot; /&gt;
            &lt;PagerStyle CssClass=&quot;pager&quot; /&gt;
            &lt;Columns&gt;
                &lt;asp:BoundField DataField=&quot;id&quot; HeaderText=&quot;Id&quot; /&gt;
                &lt;asp:BoundField DataField=&quot;tarih&quot; HeaderText=&quot;Tarih&quot; /&gt;
                &lt;asp:BoundField DataField=&quot;sessionid&quot; HeaderText=&quot;Oturum Kimliği&quot; DataFormatString=&quot;{0:n}&quot; /&gt;
                &lt;asp:TemplateField HeaderText=&quot;Bu bir textbox&quot;&gt;
                    &lt;ItemTemplate&gt;
                        &lt;asp:TextBox runat=&quot;server&quot; ID=&quot;TextBox1&quot; /&gt;
                    &lt;/ItemTemplate&gt;
                &lt;/asp:TemplateField&gt;
                &lt;asp:TemplateField HeaderText=&quot;Bu bir literal&quot;&gt;
                    &lt;ItemTemplate&gt;
                        &lt;asp:Literal runat=&quot;server&quot; ID=&quot;Literal1&quot; Text='&lt;%#Eval(&quot;id&quot;) %&gt;' /&gt;
                    &lt;/ItemTemplate&gt;
                &lt;/asp:TemplateField&gt;
                &lt;asp:TemplateField&gt;
                    &lt;ItemTemplate&gt;
                        &lt;a href=&quot;&quot;&gt;Detay&lt;/a&gt;
                    &lt;/ItemTemplate&gt;
                &lt;/asp:TemplateField&gt;
            &lt;/Columns&gt;
        &lt;/asp:GridView&gt;
</pre>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-template.jpg"><img class="alignnone size-large wp-image-965" title="gridview-template" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-template-600x201.jpg" alt="" width="600" height="201" /></a></p>
<p>Yukarıda da gördüğünüz gibi TemplateField içine ItemTemplate ile istediğimiz kontrolü yada herhangi birşeyi rahatlıkla girdik. Burada dikkat ederseniz Eval(&#8220;id&#8221;) şeklinde bir kullanım gerçekleştirdik. Eval veri kaynağımızdan manuel bir şekilde veriyi gridimizin içine çekmemize olanak sağlayan bir fonksiyon. Şöyle bir soru gelebilir buraya textbox ları ekledik fakat içerisindeki veriyi nasıl alabiliriz ? Bu sorunun cevabını bir sonraki yazımda yazacağım.</p>
<p>Gridview in çok fazla özelliği bulunuyor. Bu özelliklere verileri güncelleme ve silme gibi olaylarda dahil fakat ben bu özelliğin kullanılmasını çok sağlıklı bulmuyorum. Neden bulmuyorum, çünkü sayfa yeniden yükleniyor, haliyle griddeki  verilerde yeniden yükleniyor, bu son son derece gereksiz ve verimsiz. Bu düzenleme işlemi için hem grid tarafında hemde kod tarafına bir sürü kod yazmamızın gerekmeside ayrı bir handikap. Düzenleme işlemi için jQuery ile veriyi olduğu yerde düzenleme (inline edit) yöntemini hem daha kolay kullanılabilir hemde maliyetinin daha az olduğunu düşünüyorum. Bu konuyu ilerleyen günlerde ele alacağım. Dipnot olarak burada dursun istedim.</p>
<p>Footer ile ilgili aklıma bir şey daha geldi. Gridimize footer ekledik fakat patronumuz yada iş verenimiz bize footerin aynısının headerında üstünde olmasını istedi. Böyle bir istek neden gelir ? Gridimizde çok fazla satır olduğunu düşünürsek, alt toplamlar yada diğer bilgilere erişmek için kullanıcı sayfayı dibe kadar çekmek zorunda kalacaktır. Bu işi yapmanın bir çok yolu bulunuyor. Tabiri caizse bir gumul kodun yazılacağı çok can sıkıcı bir durumdur bu. Bu noktada imdadımıza jQuery yetişiyor. Hemde ne yetişme, bir satırda olayı çözüyoruz. Footerımıza bir class atamıştık, ilk önce footerımızı seçiyoruz sonrasında klonluyoruz (<a href="http://api.jquery.com/clone/" target="_blank">clone</a>) ve headerımızın önüne ekliyoruz. Bu sayede footerda değişiklikler olduğunda aynen headerada uygulanmış oluyor. Sürekli footera ayrı kod headerdakine ayrı kod yazmaktan kurtulmuş oluyoruz.</p>
<pre class="brush: xml; title: ; notranslate">
    &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
    &lt;script type=&quot;text/javascript&quot;&gt;
        $(document).ready(function() {
            $(&quot;.grid .header&quot;).before(&quot;&lt;tr class='footer'&gt;&quot; + $(&quot;.grid .footer&quot;).clone().html() + &quot;&lt;/tr&gt;&quot;);
        })
    &lt;/script&gt;
    </pre>
<p><a href="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-footerclon.jpg"><img class="alignnone size-large wp-image-961" title="gridview-footerclon" src="http://www.apostylee.com/wp-content/uploads/2010/10/gridview-footerclon-600x322.jpg" alt="" width="600" height="322" /></a></p>
<p>Gridview ile ilgili yazacaklarım şimdilik bu kadar, umarım anlaşılır bir yazı olmuştur. Yukarıda da belirttiğim gibi gridview ile ilgili yazacak çok fazla şey bulunuyor. Ben en ana hatlarıyla ve en sık kullanılan özelliklerini anlatmaya çalıştım. İlerleyen günlerde daha farklı özelliklerini ele almaya çalışacağım, herkese kolay gelsin.</p>
<div class="shr-publisher-958"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/gridview-ile-calismak-ve-puf-noktalari/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sosyal imleme mekanızması yapmak.</title>
		<link>http://www.apostylee.com/sosyal-imleme-mekanizmasi-yapmak/</link>
		<comments>http://www.apostylee.com/sosyal-imleme-mekanizmasi-yapmak/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 12:37:00 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Diğer Diller]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[sosyal imleme]]></category>

		<guid isPermaLink="false">http://sosyal-imleme-mekanizmasi-yapmak.html</guid>
		<description><![CDATA[Kaç zamandır aklımdaydı siteme sosyal imleme mekanızması eklemek. Öcelikle sosyal imleme nedemek kabaca bunu anlatmaya çalışayım. Beğendiğiniz bir siteyi veya bir yazıyı tekrar lazım olur diye tarayıcılarımızda bulunan Sık Kullanılanlar kısmına ekliyoruz ve ne hikmetse bilgisayarımıza format atarken genellikle yedeklemeyi unutuyoruz ve hepsi birden siliniyor. Yada kendi bilgisayarımız başında değilken sık kullanılanlara erişmemiz mümkün değildir.  Bağlantılarımızı saklayıp insanlarla paylaşabileceğimiz sitelere, [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Kaç zamandır aklımdaydı siteme sosyal imleme mekanızması eklemek. Öcelikle sosyal imleme nedemek kabaca bunu anlatmaya çalışayım. Beğendiğiniz bir siteyi veya bir yazıyı tekrar lazım olur diye tarayıcılarımızda bulunan <strong>Sık Kullanılanlar</strong> kısmına ekliyoruz ve ne hikmetse bilgisayarımıza format atarken genellikle yedeklemeyi unutuyoruz ve hepsi birden siliniyor. Yada kendi bilgisayarımız başında değilken sık kullanılanlara erişmemiz mümkün değildir.  Bağlantılarımızı saklayıp insanlarla paylaşabileceğimiz sitelere, sosyal imleme sitesi diyoruz. Özellikle Facebook gibi sosyal ağların popüler olduğu günümüzde bu ağlarda haber, resim ve video paylaşımlarıda epeyce popüler. Şimdi düşünelim kullanıcı sitemizdeki bir yazıyı çok beğendi ve Facebook&#8217; da bunu arkadaşlarıyla paylaşmak istiyor. Eğer sitemizde paylaşım için herhangi bir bilgi yoksa %99 kullanıcı paylaşımdan vazgeçiyor, varsa bir tıkla işini hallediyor ve sitemizin ciddi anlamda ziyaretçi kazanmasını sağlıyor. Uzun lafın kısası Web 2.0 ile birlikte popüler olan bu paylaşım tarzı bize güzel şeyler sunuyor. Geçelim mekanızmamızı yapma işlemine;</p>
<p>Öncelikle JavaScript ile birlikte küçük bir yapı kuracağız, amacımız yeni bir imleme sitesi eklerken çıkarırken kolaylık olsun. Kodlarda anlatılacak çok fazla bir şey bulunmuyor, baktığınızda basit bir yapı olduğunu zaten anlayacaksınız.</p>
<p>Farklı bir imleme sitesi eklemek isterseniz, if bloklarına bir yenisini ekleyecek olduğunuz sitenin adresi ve değişken kısımları şeklinde ekleyebilirsiniz.  <strong><a href="http://www.apostylee.com/dosyalar/imleme.rar">Buradan</a></strong> bitmiş halini indirebilir, demosu içinse bu yazının altına bakabilirsiniz ;) bu arada dosyaları indirdiğinizde diğer sosyal paylaşım sitelerinin logolarını kendimce bonus olarak sizlere sunuyorum :)</p>
<pre class="brush: xml; title: ; notranslate">
function sosyalAdres(gelen)
{
  var baslik = encodeURI('Eklencek yazının başlığı');
  var adres = escape('Eklenecek yazının içeriği');
  var pencereAyar = &quot;height=700,width=800,titlebar=no,status=no,toolbar=no,menubar=no,location=no,resizable=no,scrollbars=1&quot;;
  var sAdres='';

  if(gelen==1)
  sAdres=&quot;http://www.facebook.com/sharer.php?title=&quot; + baslik + &quot;&amp;u=&quot; + adres;

  if(gelen==2)
  sAdres=&quot;http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=&quot; + adres+ &quot;&amp;title=&quot; + baslik;

  if(gelen==3)
  sAdres=&quot;http://digg.com/submit?url=&quot;+adres+&quot;&amp;title=&quot; + baslik;

  if(gelen==4)
  sAdres=&quot;http://del.icio.us/post?url=&quot;+adres+&quot;&amp;title=&quot; + baslik;

  if(gelen==5)
  sAdres=&quot;http://reddit.com/submit?url=&quot;+adres+&quot;&amp;title=&quot; + baslik;

  window.open(sAdres.replace(/amp;/gi,''),null,pencereAyar);
}
</pre>
<p>Daha Sonrasında, güzel bir görüntü için style kodlarımızı ve işin görüntü olan kısmını ekliyoruz.</p>
<pre class="css">	.sosyal{background-color:#f5f5f5;border-bottom:1px solid #ededed;width:715px;padding:5px 0 0 5px;cursor:default;margin-bottom:5px}
	.sosyal span{font-family:Helvetica,sans-serif;color:#0063dd;font-size:14px;font-weight:bold}
	.sosyal:hover {border-bottom:1px solid #c0c0c0}
	.sosyal img{margin-left:20px;cursor:pointer;}
	.sosyal img:hover{margin-bottom:-5px}
[/html]
 
<pre class="brush: xml; title: ; notranslate">
	&lt;div class=&quot;sosyal&quot;&gt;
		&lt;span&gt;Bu yazıyı paylaşın;&lt;/span&gt;
		&lt;img border=&quot;0&quot; src=&quot;img/sosyalButton/google.png&quot; alt=&quot;bu bağlantıyı Google' e eklemek için tıklayın&quot; onclick=&quot;sosyalAdres(2)&quot; /&gt;
		&lt;img border=&quot;0&quot; src=&quot;img/sosyalButton/facebook.png&quot; alt=&quot;bu bağlantıyı Facebook' e eklemek için tıklayın&quot; onclick=&quot;sosyalAdres(1)&quot; /&gt;
		&lt;img border=&quot;0&quot; src=&quot;img/sosyalButton/reddit.png&quot; alt=&quot;bu bağlantıyı Reddit' e eklemek için tıklayın&quot; onclick=&quot;sosyalAdres(5)&quot; /&gt;
		&lt;img border=&quot;0&quot; src=&quot;img/sosyalButton/digg.png&quot; alt=&quot;bu bağlantıyı Digg' e eklemek için tıklayın&quot; onclick=&quot;sosyalAdres(3)&quot; /&gt;
		&lt;img border=&quot;0&quot; src=&quot;img/sosyalButton/delicious.png&quot; alt=&quot;bu bağlantıyı Delicious' e eklemek için tıklayın&quot; onclick=&quot;sosyalAdres(4)&quot; /&gt;
	&lt;/div&gt;
</pre>
<blockquote><p>
Volkan arkadaşıma teşşekür ediyor ve ekliyorum.<br />
 Bu hizmeti Türkçe olarak <a href="http://www.eklebunu.com/" target="_blank">EkleBunu</a> sitesinden edinebilirsiniz.
</p></blockquote>
</pre>
<div class="shr-publisher-147"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/sosyal-imleme-mekanizmasi-yapmak/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Formu birden fazla yere post etmek.</title>
		<link>http://www.apostylee.com/formu-birden-fazla-yere-post-etmek/</link>
		<comments>http://www.apostylee.com/formu-birden-fazla-yere-post-etmek/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 16:09:00 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Diğer Diller]]></category>
		<category><![CDATA[form]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[post]]></category>

		<guid isPermaLink="false">http://Formu-birden-fazla-yere-post-etmek..html</guid>
		<description><![CDATA[Formu birden fazla yere post etmek. Form butonlarını istediğiniz kadar çoğaltabilirsiniz.]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Formu birden fazla yere post etmek.</p>
<pre class="brush: xml; title: ; notranslate">
	&lt;script&gt;
		function formuGonder(adres,pencere){
			document.formumuz.action = adres;
			document.formumuz.target = pencere;
			document.formumuz.submit();
		}
	&lt;/script&gt;
	&lt;form name=&quot;formumuz&quot; method=&quot;post&quot;&gt;
		&lt;input type=&quot;text&quot; name=&quot;adsoyad&quot;&gt;
			&lt;input type=&quot;button&quot; value=&quot;x Adresine Gönder&quot; onclick=&quot;formuGonder('x.html','_top')&quot;&gt;
			&lt;input type=&quot;button&quot; value=&quot;y Adresine Gönder (yeni pencerede)&quot; onclick=&quot;formuGonder('y.html','_blank')&quot;&gt;
	&lt;/form&gt;
</pre>
<p>Form butonlarını istediğiniz kadar çoğaltabilirsiniz.</p>
<div class="shr-publisher-22"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/formu-birden-fazla-yere-post-etmek/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Arkadaş JavaScript e de saygım kalmadı&#8230;</title>
		<link>http://www.apostylee.com/arkadas-javascript-e-de-saygim-kalmadi/</link>
		<comments>http://www.apostylee.com/arkadas-javascript-e-de-saygim-kalmadi/#comments</comments>
		<pubDate>Tue, 16 Sep 2008 00:39:00 +0000</pubDate>
		<dc:creator>apoStyLEE</dc:creator>
				<category><![CDATA[Kişisel Şeyler]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://Arkadas-JavaScript-e-de-saygim-kalmadi....html</guid>
		<description><![CDATA[Yahu şu site için günlerdir yazı eklemede kullanmak üzere yazı editörü arıyorum (texteditör) fakat bir türlü istediğim gibi sade ve kullanışlı bişiy bulamadım. Ben başka bişiy yapıştırıyorum o bi ton arka plana kod ekliyor en uyuz olduğum şey bu ya, sırf bu yüzden yıllar önce Dreamweaver kaldırıp yerine FrontPage kurmuştum ki aradan dünya kadar zaman geçti haleda [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Yahu şu site için günlerdir yazı eklemede kullanmak üzere yazı editörü arıyorum (texteditör) fakat bir türlü istediğim gibi sade ve kullanışlı bişiy bulamadım. Ben başka bişiy yapıştırıyorum o bi ton arka plana kod ekliyor en uyuz olduğum şey bu ya, sırf bu yüzden yıllar önce Dreamweaver kaldırıp yerine FrontPage kurmuştum ki aradan dünya kadar zaman geçti haleda frontpageyi silmedim.. En sonunda kafam bozuluyor düz yazı alanı kullanıp elle yazacam html sini css sini..</p>
<p>İkinci bir sıkıntımda şu kod renklendirme scriptleri, alayı beş para etmez scriptler. Bir çalışıyorlar beş çalışmıyorlar. Zamanım olsa yazcam bi tane paşalar gibi yastlanacam arkama. Haaa bu iş içinde güzel istediğim gibi bişiyler bulamazsam, ellerimle renklendirecem kodları.. Neyse öldüm uykusuzuluktan hadi iyi geceler cümleten&#8230;</p>
<div class="shr-publisher-18"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.apostylee.com/arkadas-javascript-e-de-saygim-kalmadi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
