I) Öncelikle bir Mobile Web Application uygulaması yaratalım ve açılan döküman üzerindeki formumuzun üzerine bir tane ObjectList ve bir tane Command ve de bir tane de Selection ekleyelim. Eklediğimiz ObjectList veritabanından gelen verileri gösterecek ve Command ise seçili dili değiştirmede Post etkisi yaratmada, SelectionList ise dilleri göstermede kullanılacak. ObjectList “imize sağ tıklayıp açılan PopUp menüden Templating Options seçeneğini seçelim. Templating Options özelliği, sunucuya istek yapan tarayıcı türüne göre uygun çıktı formatı yapmamızı sağlıyor. Çıkan dialog penceresinden Applied Device Filter özelliği None olarak geliyor ve dropdownlist içerisinde başka herhangi bir seçenek olmuyor. Bu henüz tarayıcıya özel bir çıktı ayarlanmadığı anlamına geliyor. Bu pencerede Edit tuşuna basıyoruz.
II) Açılan yeni pencere bize uygulamamızda desteklediğimiz tarayıcı türlerini gösteriyor. Buradan isHTML32″yi seçiyoruz ve Add To List diyerek formatlama yapılacak türler listesine ekliyoruz. Ve açılan pencerelerimizi sırayla onayladıktan sonra kapatıyoruz. Bu sayede HTML formatlaması yapacağımızı belirtiyoruz.
III) ObjectList”imize tekrar sağ tıklayıp Item Templates”i seçiyoruz bu sefer. ObjectList”lerde, Web DataGrid”lerinden farklı olarak sadece tek bir kolon gösterebildikleri için Item Templates seçeneği de bu yüzden tek gelmektedir. Açılan pencere artık tanıdık gelmekte. Buraya bir tane HTML tablosu ve bu tablonun içerisine de iki tane Link koyuyoruz ve Link”lerin DataBindings özelliğinden Text ve NavigateUrl özelliklerini bağlıyoruz. NavigateUrl özelliğini ise seçilen satırın detaylarını göstereceğimiz sayfaya ilgili parametre ile yönlendirmek için kullanacağız.
|
// Text özeliğine aşağıdaki gibi RegionID”yi bağlıyoruz. DataBinder.Eval(((ObjectListItem)Container).DataItem, “RegionID”) // NavigateUrl özelliğinde ise aynı sayfaya parametre ile yönlendirme // yapıyoruz. “MobileWebForm1.aspx?RegionID=”+DataBinder.Eval(((ObjectListItem)Container).DataItem, “RegionID”) |
IV) Sonra ObjectListimizin Header”ına bir tane Label ekliyoruz ve ikinci formumuza iki tane TextView ve bir tane de Command ekliyoruz. Command geri tuşu işlevini görecek.TextView”ler ise paramerte olarak gelen değerin detay sahalarını gösterecekler.
V) Uygulamamızın önyüzleriyle ilgili yapacaklarımız sona erdi. Şimdi de arkaplandaki işi yapacak olan kod kısmımıza geçelim. Öncelikle, ObjectListimizde gösterilen sahaların açıklamalarını tutarken hem ingilizce hem de türkçe desteği vermek için myListTr ve myListEn adlı iki tane ArrayList yaratalım. Verileri tutmak için ise bir tane DataTable tanımlayalım.
|
public ArrayList myListTr = new ArrayList(); public ArrayList myListEn = new ArrayList(); DataTable dt = new DataTable(); |
VI) Sayfanın ilk yünlendiği Page_Load metodunda ise
|
//ObjectListimizdeki sahaların başlıklarını ArrayListe atıyoruz. //Türkçe ve ingilizce için ayrı birer ArrayListimiz var. myListTr.Add(”Bölge No”); myListTr.Add(”Bölge Adı”); myListEn.Add(”Region ID”); if(Request.Params["RegionID"]!=null) ActiveForm = FormDetay; TextView1.Text=regionID +” : ” +dr["RegionID"].ToString(); if(!IsPostBack) |
VII) Page_Load metodunda çağırdığımız BindData ve ChangeLanguage metodlarını açıklayalım şimdi de;
|
private void BindData() { // Önce SelectionList”imizi dolduruyoruz. //Dil değeri 0 ise Türkçe //Dil değeri 1 ise İngilizce olsun. MobileListItem li = new MobileListItem(”Türkçe”,”0″); SelectionList1.Items.Add(li); li = new MobileListItem(”İngilizce”,”1″); SelectionList1.Items.Add(li); if(Session["Dil"]==null) |
|
private void ChangeLanguage(int dil) { //Gönderilen dil değerinin tersini hem Session”a atıyor // hem de buna göre dil değiştirme tuşu ile ObjectList”in başlıklarını atıyor. System.Web.UI.MobileControls.Link lnkButton=null; if(lnkButton == null) // Gelen dil değeri 0 ise Türkçe seçilmiş demektir if(lblControl!=null) if(lblControl!=null) |
VIII) Dil değiştirme işlevini yerine getirecek olan Command”ımıza tıklandığında çalışacak olan kod parçası ise;
|
private void cmdChangeLanguage_Click(object sender, System.EventArgs e) { string strDil = SelectionList1.Selection.Value; // Session”a dil değeri kaydediliyor. int dil = int.Parse(strDil); Session.Add(”Dil”,dil); // Gidip veritabanından ilgili dille ilgili // sahaların çekileceği varsayılarak BindData // metodu çağırılıyor. BindObjectList(); // Dil değiştiği zaman ekrandaki diğer // Komponentler üzerinde de değişiklik yapılacak. ChangeLanguage(dil); } |
Bu yazımızda Mobil Web Kontorollerinden Command, ObjectList, SelectionList, Link ve TextView kullanarak basit bir uygulama yaptık. Bir sonraki yazımızda daha detaylı ve daha farklı kontrolleri kullanmayı öğreneceğiz. Burada örnek gösterilen uygulamanın tamamını indirmek için tıklayınız.
Etiketler : giris, i, konrollerine, mobil, web