MultiView ve View Kontrolleri [Hasan Mansur]
06.04.2007 14:57:17
Merhaba; bu makalemde ASP.NET 2.0 ile gelen ve eskiden (ASP.NET 1.1 ve öncesi) birbiri ile ilişkili birden çok sayfa ile gerçekleştirilmeye çalışılan işi aynı fonksiyonellilke yapan MultiView kontrolüne göz atacağız.
Puan:
     

View kontrolü bir  taşıyıcı veya kontrolleri yerleştirdiğimiz kap (container) olarak tanımlanabilir yani View kontrolü child kontrolleri (button , label , image....) içerir. Bazen bir grup kontrolün görünmez (Visible=false) olmasını isteriz. Ancak bu görünmezliğin sayfada boşluk olarak görünmesini değilde tamamen o sayfada yokmuş gibi görünmesini ve böylece sayfanın düzenini korumak isteriz. Bazen querystring ile aldığımız  kullanıcı tarfına ait bir bilgiye göre bazı kontrollerin buna bağlı olarak görünülürlüğünü yönetmemiz gerekir.Bu durumlarda Viewler , ilgili kontroller bazında düzenlendiğinde  yapmamız greken tek şey View ‘lerin görünüm durumlarını ayarlamaktır.

            MuliView kontolü View’ lerden oluşmaktadır. Multiview ve View hiçbir zaman HTML olarak oluşturulurken sahip oldukları elementlerin tümünü HTML olarak yaratmazlar. Çünkü bu elementler   aslında server-side kontroller olup child kontrollerin görünüp görünmeme durumunu (visibility) yönetirler. HTML tarafında MultiView elementi <asp:MultiView> ve View elementide <asp:View> olarak görünmektedirler.Bu elementler Control class’ ından türetilirler.

Aşağıdaki şekilde MultiView ve View kontrollerinin hiyerrarşisi bulunmaktadır.

 

MultiView bir defada yalnızca bir View görüntülemektedir.Bunuda yukarda görmüş olduğunuz MultiView ‘in  properties’ lerinden  ActiveViewIndex veya SetActiveView metodu  aracılığı ile yönetmektedir. Eğer ActiveViewIndex -1 değerine eşitlenirse hiçbir View görüntülenmez. SetActiveView metoduna  parametre olarak geçersiz bir View veya null (hiçbir şey) geçtiğimizde HttpException alırız.

MultiView kontrolünde Viewler arasında geçiş yapabilmek için  navigasyon butonları (Navigation buttons) bulunmaktadır.

MutiView kullanılarak bir diğer makalemde anlatmış olduğum Wizard kontrolü yapılabilir.

MultiView ayrıca mobil alanda da kullanılabilir.MutiView kontrolü ASP.NET 1.1 de bulunan Mobile Form ile aynı fonksiyonelliğe sahiptir.Örneğin telefon modeline göre ekran boyutları ve de desteklenen özellikler değişkenlik göstermektedir.Bu durumu MultiView içerisinde değişik View ler tanımlayarak ve telefon modeli,özelliğine göre View’ lerin görünümlerini yönetiriz.

Örneğimiz için Visual Studio 2005 ‘i açarak FileàNewàWeb Site diyerek açılan pencereden   ASP.NET Web Site seçelim ve ad olarak MultiViewDemo diyerek açalım.

1.bmp


Daha sonra formumuza ToolBoxtan bir adet MultiView kontrolü ekleyelim ve eklediğimiz MultiView içerisine yine TollBoxtan View’ ler  ekleyelim.

toolbox.bmp

Viewler içerisine ben örnek olarak birer adet button ve label  yerleştirdim.

project_design_view.bmp

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

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

{

    protected void Page_Load(object sender, EventArgs e)

    {

        if (!Page.IsPostBack)

            MultiView1.ActiveViewIndex = 0; // Proje ilk çalıştığında yani ilk yüklenmesi sırasında ilk view çalışacak

    }

    protected void btnView1_Click(object sender, EventArgs e)

    {

        MultiView1.ActiveViewIndex = 1;// Diger view

    }

    protected void btnView2_Click(object sender, EventArgs e)

    {

        MultiView1.ActiveViewIndex = 2;// Diger view

    }

    protected void btnView3_Click(object sender, EventArgs e)

    {

        MultiView1.SetActiveView((View)MultiView1.FindControl("View1"));// İlk  bastaki view'e dönus

    }

}

 

Programımız ilk açılışında sadece içinde  “CLICK T0 GO VIEW 2”  butonu ve “Here is View 1 ...” label bulunan View1 sadece visible olacaktır.Butona tıklanınca sadece View2 ve View2 deki butona tıklanınca da sadece View3 görüntülencektir.

ÇIKTI :

screenshot_View1.bmp

screenshot_View2.bmp

                        screenshot_View3.bmp

 

            MultiView kontrolü , görüldüğü üzere aynı form üzerinde bir grup kontrolün görünülürlüğünü ayarlamamızı sağlamaktadır.Ayrıca bu tür işleri birden fazla form kullanarak , parametreler yardımıyla formlar arasında bilgi taşımak yerine daha pratik bir çözüm oluşturmaktadır.

 

Kullanılan kaynaklar : MSDN

 

HASAN MANSUR

 
Puan: