﻿
{"id":300,"date":"2012-03-21T01:05:01","date_gmt":"2012-03-21T01:05:01","guid":{"rendered":"http:\/\/www.gencayyildiz.com\/blog\/?p=300"},"modified":"2012-04-19T21:29:39","modified_gmt":"2012-04-19T21:29:39","slug":"asp-net-master-page-kullanimi","status":"publish","type":"post","link":"https:\/\/www.gencayyildiz.com\/blog\/asp-net-master-page-kullanimi\/","title":{"rendered":"Asp.NET &#8211; Master Page Kullan\u0131m\u0131"},"content":{"rendered":"<div id=\"fb-root\"><\/div>\n<p>Web projelerimizde, sitemizin \u015femas\u0131 belirli bir yap\u0131da olup, belirli alanlar\u0131n dinamik ya da statik bir bi\u00e7imde de\u011fi\u015ftirilmesi durumunda, her sayfada ayn\u0131 \u015femay\u0131 tasarlay\u0131p o \u015fema \u00fczerinde de\u011fi\u015ftirilicek yerlerin modifikasyonunu yapmak zahmetli bir i\u015f olmakla beraber kar\u0131\u015f\u0131kl\u0131l\u0131\u011fa yol a\u00e7abilir.Bu durumda Asp.NET bize Master Page kontrol\u00fcn\u00fc sunmaktad\u0131r.Sitemizin tasar\u0131m\u0131n\u0131 Master Page sayfas\u0131nda yap\u0131p, o tasar\u0131m\u0131 kullanacak sayfalar\u0131da bu Master Page sayfas\u0131ndan t\u00fcretece\u011fiz.<br \/>\n<!--more--> <a href=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/03\/masterpage.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"masterpage\" src=\"http:\/\/www.gencayyildiz.com\/blog\/wp-content\/uploads\/2012\/03\/masterpage.png\" alt=\"\" width=\"430\" height=\"293\" \/><\/a><br \/>\nYukar\u0131daki \u015femaya dikkatinizi \u00e7ekerim.G\u00fcn\u00fcm\u00fcz\u00fcn sitelerinde GENELL\u0130KLE Header,Men\u00fc ve Footer b\u00f6l\u00fcmlerinin, b\u00fct\u00fcn sayfalarda ayn\u0131 \u0130\u00e7erik k\u0131sm\u0131n\u0131n de\u011fi\u015fik oldu\u011fu dikkatinizi \u00e7ekmedimi.\u00d6rnek olarak \u015fu anda bulundu\u011funuz sitemi vereyim.Sitemin anasayfas\u0131na bakarsan\u0131z e\u011fer(blo\u011fumdan bahsediyorum) \u00a0Kategoriler,Etiketler vs.. bulundu\u011fu b\u00f6l\u00fcm yani sol men\u00fc ve Ba\u015fl\u0131k k\u0131sm\u0131 b\u00fct\u00fcn sayfalarda ayn\u0131 geliyor.Ancak i\u00e7erik k\u0131sm\u0131(yaz\u0131lar\u0131n yay\u0131nland\u0131\u011f\u0131 k\u0131s\u0131m) s\u00fcrekli de\u011fi\u015fiyor.\u0130\u015fte Master Page ile Header,Men\u00fc ve Footer k\u0131s\u0131mlar\u0131n\u0131 sabit tutup, \u0130\u00e7erik k\u0131sm\u0131n\u0131 de\u011fi\u015ftirilebilir yapaca\u011f\u0131z.<br \/>\nMaster Page &#8216; den t\u00fcreyen sayfalarda Header,Men\u00fc ve Footer k\u0131s\u0131mlar\u0131n\u0131 de\u011fi\u015ftirme gibi bir imkan\u0131m\u0131z olmayacak.<br \/>\n\u015eimdi Visual Studio ortam\u0131nda bir Asp.NET projesi a\u00e7al\u0131m ve projemize bir Master Page sayfas\u0131 ekleyelim.<br \/>\nMaster Page sayfalar\u0131n\u0131n uzant\u0131lar\u0131 &#8220;.master&#8221; d\u0131r.Ben MasterPage.master ad\u0131nda bir sayfa olu\u015fturuyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---MasterPage.master---&lt;\/pre&gt;\r\n&lt;%@ Master Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;MasterPage.master.cs&quot; Inherits=&quot;MasterPage&quot; %&gt;\r\n\r\n&lt;html xmlns=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot;&gt;\r\n&lt;head runat=&quot;server&quot;&gt;\r\n &lt;title&gt;&lt;\/title&gt;\r\n\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;\r\n &lt;div&gt;\r\n &lt;asp:ContentPlaceHolder id=&quot;ContentPlaceHolder1&quot; runat=&quot;server&quot;&gt;\r\n\r\n &lt;\/asp:ContentPlaceHolder&gt;\r\n &lt;\/div&gt;\r\n &lt;\/form&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n&lt;pre&gt;\r\n<\/pre>\n<p>Sayfay\u0131 olu\u015fturur olu\u015fturmaz source k\u0131sm\u0131nda yukar\u0131daki kodlar\u0131 g\u00f6receksiniz.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;asp:ContentPlaceHolder id=&quot;ContentPlaceHolder1&quot; runat=&quot;server&quot;&gt;\r\n&lt;\/asp:ContentPlaceHolder&gt;\r\n<\/pre>\n<p>Html taglar\u0131 aras\u0131ndaki ContentPlaceHolder nesnesi, bu MasterPage.master sayfas\u0131ndan t\u00fcreyen sayfalarda de\u011fi\u015ftirilebilecek alan\u0131 g\u00f6stermektedir.<br \/>\nAld\u0131\u011f\u0131 id de\u011ferine g\u00f6re t\u00fcreyen s\u0131n\u0131flardan bu ContentPlaceHolder nesnesine ula\u015fabilir ve gerekli de\u011fi\u015fikli yapabiliriz.<br \/>\n\u015eimdi MasterPage.master &#8216; dan t\u00fcreyen bir sayfa yapmal\u0131m.<br \/>\nProjemize sa\u011f t\u0131klay\u0131p, &#8220;Add New Item&#8221; dedikten sonra a\u00e7\u0131lan pencerede &#8220;Web Form&#8221; se\u00e7ip, a\u015fa\u011f\u0131daki kutucuklardan, &#8220;Select master page(Master Page Se\u00e7)&#8221; yazan\u0131n\u0131 i\u015faretleyip &#8220;Add&#8221; butonuna bas\u0131n\u0131z.(Bu sayfan\u0131n ad\u0131n\u0131 ben MasterDeneme.aspx yapt\u0131m.)<br \/>\n&#8220;Add&#8221; butonuna bast\u0131ktan sonra bir ekran geleciktir.Projenizde kullan\u0131m\u0131n\u0131za g\u00f6re b\u00fct\u00fcn Master Page sayfalar bu gelen ekranda listelenecektir.Ve sizde \u015fu anda olu\u015fturaca\u011f\u0131n\u0131z sayfan\u0131n hangi Master Pageden t\u00fcremesini istiyorsan\u0131z onu se\u00e7eceksiniz.Benim projemde \u015fu anda bir tane,MasterPage.master ad\u0131nda Master Page im oldu\u011fundan dolay\u0131 ben onu se\u00e7iyorum.En nihayetinde MasterPage.master dan t\u00fcreyen MasterDeneme.aspx isminde bir sayfam\u0131z olu\u015fmu\u015ftur.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---MasterDeneme.aspx---&lt;\/pre&gt;\r\n&lt;%@ Page Title=&quot;&quot; Language=&quot;C#&quot; MasterPageFile=&quot;~\/MasterPage.master&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;MasterDeneme.aspx.cs&quot; Inherits=&quot;MasterDeneme&quot; %&gt;\r\n\r\n&lt;asp:Content ID=&quot;Content2&quot; ContentPlaceHolderID=&quot;ContentPlaceHolder1&quot; Runat=&quot;Server&quot;&gt;\r\n&lt;\/asp:Content&gt;\r\n&lt;pre&gt;\r\n<\/pre>\n<p>Yukar\u0131da g\u00f6rd\u00fc\u011f\u00fcn\u00fcz, MasterDeneme.aspx sayfan\u0131n source k\u0131sm\u0131d\u0131r.MasterPageFile=&#8221;~\/MasterPage.master&#8221; komutu, bu sayfan\u0131n hangi Master Pageden t\u00fcredi\u011fini s\u00f6yl\u00fcyor.Bu sayfaya eklenen Content nesnelerinden a\u015fa\u011f\u0131da bahsedelim.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n&lt;asp:Content ID=&quot;Content2&quot; ContentPlaceHolderID=&quot;ContentPlaceHolder1&quot; Runat=&quot;Server&quot;&gt;\r\n&lt;\/asp:Content&gt;\r\n<\/pre>\n<p>Benim MasterPage.master sayfamda,<br \/>\n&lt;asp:ContentPlaceHolder id=&#8221;ContentPlaceHolder1&#8243; runat=&#8221;server&#8221;&gt;<br \/>\n&lt;\/asp:ContentPlaceHolder&gt;<br \/>\nkodlar\u0131yla, bu Master Page ten t\u00fcreyen di\u011fer sayfalarda de\u011fi\u015ftirilebilecek alanlar\u0131 belirtmi\u015ftik.MasterDeneme.aspx sayfas\u0131nda ise bu de\u011fi\u015ftirilebilecek alan\u0131 Content nesnesiyle belirtiyorum.<br \/>\nDikkat ederseniz, MasterPage.master sayfas\u0131ndaki ContentPlaceHolder nesnesinin id si &#8220;ContentPlaceHolder1&#8221; dir.MasterDeneme.aspx sayfas\u0131nda Content nesnesinin ContentPlaceHolderID si &#8220;ContentPlaceHolder1&#8221; g\u00f6stermektedir.Yani bu Content nesnesi sayesinde, Master Pagedeki &#8220;ContentPlaceHolder1&#8221; adl\u0131 de\u011fi\u015ftirilebilir alan\u0131 kontrol edece\u011fim anlam\u0131ndad\u0131r.<\/p>\n<p>Yapaca\u011f\u0131m\u0131z de\u011fi\u015fiklikleri &lt;asp:Content.. &lt;\/asp:Content&gt; bloklar\u0131 aras\u0131nda yapabiliriz.<\/p>\n<p>Burada dikkatimizi \u00e7eken bir ba\u015fka unsur da, html kodlar\u0131n\u0131n olmay\u0131\u015f\u0131d\u0131r.\u0130\u00e7erik sayfas\u0131, Master Page sayfas\u0131ndan t\u00fcredi\u011fi i\u00e7in, gerekli html kodlar\u0131n\u0131 o sayfadan alacakt\u0131r.Bu y\u00fczden html taglar\u0131na gerek yoktur.<\/p>\n<p>Not!! Bir Master Page de birden fazla ContentPlaceHolder kullan\u0131labilir.<br \/>\nNot!! Master sayfalar taray\u0131c\u0131lar taraf\u0131ndan g\u00f6sterilmez.<\/p>\n<p>\u015eimdi bir sonraki sayfada Master Page deki bir kontrole, o Master Page ten t\u00fcreyen di\u011fer sayfalardan ula\u015fma konusuna de\u011finece\u011fim.<\/p>\n<p><!--nextpage--><br \/>\nBir \u00f6nceki sayfada Master Page sayfas\u0131n\u0131n ne i\u015fe yarad\u0131\u011f\u0131n\u0131 ve nas\u0131l kullan\u0131ld\u0131\u011f\u0131na de\u011findik.\u015eimdi ise Master Page sayfas\u0131ndaki bir nesneye, i\u00e7erik sayfas\u0131ndan ula\u015f\u0131p, o nesneye istedi\u011fimiz \u00e7al\u0131\u015fmay\u0131 yapmay\u0131 g\u00f6sterece\u011fim.<br \/>\n\u015eimdi bir Master Page sayfas\u0131 olu\u015ftural\u0131m.Ben bu sayfaya MasterPage2.master ad\u0131n\u0131 koyuyorum.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n---MasterPage2.master---&lt;\/pre&gt;\r\n&lt;%@ Master Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;MasterPage2.master.cs&quot; Inherits=&quot;MasterPage2&quot; %&gt;\r\n\r\n&lt;!DOCTYPE html PUBLIC &quot;-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN&quot; &quot;http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd&quot;&gt;\r\n\r\n&lt;html xmlns=&quot;http:\/\/www.w3.org\/1999\/xhtml&quot;&gt;\r\n&lt;head runat=&quot;server&quot;&gt;\r\n &lt;title&gt;&lt;\/title&gt;\r\n\r\n&lt;\/head&gt;\r\n&lt;body&gt;\r\n &lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;\r\n &lt;div&gt;\r\n &lt;asp:ContentPlaceHolder id=&quot;ContentPlaceHolder1&quot; runat=&quot;server&quot;&gt;\r\n\r\n &lt;\/asp:ContentPlaceHolder&gt;\r\n &lt;\/div&gt;\r\n &lt;asp:Label ID=&quot;Label1&quot; runat=&quot;server&quot; Text=&quot;Label&quot;&gt;&lt;\/asp:Label&gt;\r\n &lt;\/form&gt;\r\n&lt;\/body&gt;\r\n&lt;\/html&gt;\r\n&lt;pre&gt;<\/pre>\n<p>G\u00f6rd\u00fc\u011f\u00fcn\u00fcz gibi Master Page imizde bir Label nesnesi mevcut.Ben istesem Masterpage2.master.cs sayfas\u0131ndan bu Label nesnesinin istedi\u011fim \u00f6zelli\u011fiyle, kodlar arac\u0131l\u0131\u011f\u0131yla oynar\u0131m.<\/p>\n<p>Ancak MasterPage2.master sayfas\u0131ndan t\u00fcreyen bir web sayfas\u0131n\u0131n .cs sayfas\u0131ndan, MasterPage2.master sayfas\u0131ndaki Label nesnesine ula\u015fam\u0131yoruz.<\/p>\n<p>Ben sayfas\u0131na g\u00f6re, MasterPage2.master daki bu nesnenin \u00f6zelli\u011fini de\u011fi\u015ftirmek istiyor olabilirim.<br \/>\nBu sorunlar\u0131n \u00e7\u00f6z\u00fcm\u00fc a\u015fa\u011f\u0131daki \u015fekildedir.<\/p>\n<pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\r\n\/\/MasterPage2.master sayfas\u0131ndan t\u00fcreyen bir sayfa olarak varsayal\u0131m..\r\n\/\/Master sayfada olan nesnenin tipinden bir referans olu\u015fturmal\u0131y\u0131z.Master.FindControl() koduyla Master sayfadaki kontrol\u00fcn idsini veriyoruz.\r\n        Label lblSayfaAdi = (Label)Master.FindControl(&quot;lblSayfaAdi&quot;);\r\n\/\/Olu\u015fturdu\u011fumuz referansa,Master.FindControl() dan Control tipinden gelen nesneyi Label tipine Cast edip veriyoruz.\r\n        lblSayfaAdi.Text = &quot;Deneme Sayfas\u0131ndas\u0131n\u0131z&quot;;\r\n\/\/Ele ge\u00e7irdi\u011fimiz nesne \u00fczerinden istedi\u011fimiz \u00e7al\u0131\u015fmay\u0131 yap\u0131yoruz.\r\n<\/pre>\n<p>Sonraki yaz\u0131lar\u0131mda g\u00f6r\u00fc\u015fmek \u00fczere&#8230;<br \/>\n\u0130yi \u00e7al\u0131\u015fmalar..<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Web projelerimizde, sitemizin \u015femas\u0131 belirli bir yap\u0131da olup, belirli alanlar\u0131n dinamik ya da statik bir bi\u00e7imde de\u011fi\u015ftirilmesi durumunda, her sayfada ayn\u0131 \u015femay\u0131 tasarlay\u0131p o \u015fema \u00fczerinde de\u011fi\u015ftirilicek yerlerin modifikasyonunu yapmak zahmetli bir i\u015f olmakla&#46;&#46;&#46;<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[178],"class_list":["post-300","post","type-post","status-publish","format-standard","hentry","category-asp-net","tag-master-page"],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/300","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/comments?post=300"}],"version-history":[{"count":0,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/posts\/300\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/media?parent=300"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/categories?post=300"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gencayyildiz.com\/blog\/wp-json\/wp\/v2\/tags?post=300"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}