Yazılım Notları
Bilgi Paylaştıkça Çoğalır...

Master Pagedeki bir kontrole aspx sayfasından erişim

Bazı durumlarda, master page in içinde yer alan bir aspx sayfasından, masterpagedeki bir kontrole erişip, o kontrolün değerine ihtiyaç duyabiliriz.


        MasterPage 'in içinde bir div olsun. Bu div, arama yaptığımız yer diyelim. Arama kısmında arama kriterini yazacağımız bir textBox ve, arama işini yaptırdığımız bir button olmalı. master page'imizin kaynak kodu aşağıdaki gibi bir şey olacaktır.
  
        Master Page (main.master)    

<%@ MasterLanguage="C#"AutoEventWireup="true"CodeBehind="main.master.cs" Inherits="MasterPageKontrolunuOkuma.main"%>

<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head runat="server">

    <title></title>

    <asp:ContentPlaceHolderID="head"runat="server">

    </asp:ContentPlaceHolder>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <div style="width:100%; height:100px; text-align:center; background-color:#666; color:White; font-size:24pt">

           BANNER

    </div>

    <div>

       Content Bu kısımda olacak (ContentPlaceHolder Değil) Sadece MasterPage'in content i

        <br /><br />

        <asp:TextBox ID="txtAra" runat="server"BackColor="WhiteSmoke"BorderStyle="Solid"BorderWidth="1px" ForeColor="Black"Height="24px"></asp:TextBox>

        <asp:Button ID="btnAra" runat="server"Height="24px"Text="Ara"/>

        <br /><br />

 </div>

        <asp:ContentPlaceHolderID="ContentPlaceHolder1"runat="server">

        </asp:ContentPlaceHolder>

 </div>

 </form>

</body>

</html>

Bu master Page i kullanan Default.aspx sayfasının kaynak kodu ise, 


        Default.aspx

        Default.aspx sayfamızda ise, master page'deki txtAra kontrolünün değerini okuyacak bir button ve okuduğu değeri yazacağı bir Label (lblSonuc) bulunsun.


<%@ PageTitle=""Language="C#"MasterPageFile="~/main.Master"AutoEventWireup="true" CodeBehind="default.aspx.cs"Inherits="MasterPageKontrolunuOkuma._default"%>

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">

</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">

    <asp:Button ID="btnArananKelimeyiOku"runat="server"

        Text="Master Page AramaKısmındaYazan Kelimeyi Oku"

        onclick="btnArananKelimeyiOku_Click"/>

    <br /><br /><asp:Label ID="lblSonuc"runat="server"Text=""></asp:Label>

</asp:Content>

 


       Default.aspx.cs

       Default.aspx sayfasındaki button'un içinde bulunduğu master page'de yer alan kontrolü bulma ve bu kontrolün değerini okuma işi bu kısımda yapılır.


using System;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

 

namespace MasterPageKontrolunuOkuma

{

    public partial class _default :System.Web.UI.Page

    {

        protected voidPage_Load(object sender, EventArgs e)

        {

         }

 

        protected voidbtnArananKelimeyiOku_Click(object sender, EventArgs e)

        {

            //Aslında En Kritik Nokta Bu Kısım

           
                TextBox
txt = this.Master.FindControl("txtAra") asTextBox;

            //Aslında En Kritik Nokta Bu Kısım

            if (txt != null)

               lblSonuc.Text = txt.Text;

            else

               lblSonuc.Text = "Arama Kutusu Bulunamadı";

        }

    }

}

 

        Nested materPage lerde durum nasıldır başka bir yazıda bakalım bu konuya da...



 

 


ETİKETLER : ASP.Net, C Sharp, master page
 

Banka Hesap Numaralarınızı, IBAN Numaralarınızı bir kere telefonunuza kaydedin. İhtiyaç duyduğunuzda elinizin altında olsun.

Banka Hesaplarım

En Güzel Sözler Uygulaması İçin


En Çok Rating Alanlar
Ana Sayfa       Arama       Valid CSS!