ASP.NET DropDownList Doldurma işlemini bir xml den datasete veri aktararak anlatmaya çalışacağım. App_Data klasörü altında bulunan firmaList.xml dosyasındaki firma isimlerini dropdown liste dolduruyor olacağız. DropdownList imizin adı : ddlSirketler

.cs

DataSet dsSirketler = new DataSet();
dsSirketler.ReadXml(HttpContext.Current.Server.MapPath(“~/App_Data/firmaList.xml”));

ddlSirketler.DataSource = dsSirketler.Tables[0];
cbxSirketler.DataTextField = “text”;
cbxSirketler.DataValueField = “value”;

xml dosyamız

<?xml version=”1.0″ encoding=”utf-8″ ?>
<firmalar>
<firma>
<text>Firma 1</text>
<value>firma1</value>
</firma>
<firma>
<text>Firma 2</text>
<value>firma2</value>
</firma>
</firmalar>

asp.net ajax uygulamanızda CalendarExtender ile ilgili  konum problemi yaşıyorsanız , CalendarExtender ile textbox nesnenizi aynı div içerisine alarak bu problemi ordatan kaldırabilirsiniz.

<div id=”takvim” runat=”server” style=”position:relative;” >

<asp:TextBox ID=”txtTarih” runat=”server”  />

<ajaxToolkit:Calendar runat=”server”
TargetControlID=”txtTarih”
Format=”dd.MM.yyyy”
/>

</div>

asp.net uygulamanız içinde ki dropdownlistinize yeni bir eleman (option) eklemek istediğinizde , bunu window.open() ile açacağınız yeni bir pencere ile gerçekleştirmek istiyorsanız , açılan pencerede kaydet butonuna  close_form() adında bir javascript fonksiyonu ile eşleştirip  bu fonksiyon içierisine aşağıdaki kod blogunu yazarak ana sayfadaki drıpdownlist nesnesine erişerek ekleme işlemini gerçekleştirebilirsiniz.

<script>

function close_form()

{

try {

var opt = new window.opener.document.createElement(“option”);

window.opener.document.getElementById(‘dropdownlist_subeler’).options.add(opt);

opt.text = document.getElementById(‘txt_subeler’).value;

opt.value = document.getElementById(‘txt_subeler’).value; window.close();

}

catch(err)

{

alert(err);

}

}

</script>

projenizde yer alan gridview nesnenizde BoundField Column width özelliğini belirlemek için ItemStyle-Width özelliğini kullanabilirsiniz.

örn:

<asp:BoundField DataField=”ACIKLAMA”
HeaderText=”Açıklama”
SortExpression=”ACIKLAMA” ItemStyle-Width=”200px” />

Web servisler üzerinde çalışırken , aldığım bir hatanın nerede olduğunu gözlemlemek için debug mode da projeyi açmak istediğimde karşıma çıkan hata mesajı ile aşağıdaki gibi

Unable to start debugging on the web server. Debugging failed because integrated Windows authentication is not enabled. Please see Help for assistance”

Çözümü :

1. IIS(Internet Information Server)’i açın
2. Web Site’a sağ tıklayın ve Properties(Özellikler)sekmesini seçin
3. Directory Security(Dizin Güvenliği) sekmesini seçin ve “Anonymous access and
authentication control” ü seçin
4. Açılan pencerede “Enable Anonymous access” checkbox’ının tik’ini kaldırın ve
“Integrated Windows Authentication” checkbox’ını tik’lyin.

4 . adımı yaptıktan sonra da baktım ki debug ta sorun yok ama bu seferde servisi kullanan uygulama erişemiyor. bu yüzden 4. adımda “Enable Anonymous access” ifadesininde seçili olmasını sağlayın.

<map> tagı  bir resim ya da harita üzerinde tıklanabilir alanlar oluşmasını  sağlayan bir tagdir.<map>  tagında olması gereken attribute “name”dir.<map> tagı <img> tagının “usemap” attributesi ile birlikte kullanılır.

<map> tagı ile <area> tagı yardımıyla tıklanabilir alanlar oluştururuz. Tıklanabilir alanlar tıklandığı zaman başka bir image’a yönleniyor.Harita ve image arasında bağlantı sağlanmış oluyor.

w3school.com adlı siteden bir örnekle daha ayrıntılı bir şekilde anlatmaya çalışacağım.

Elimizde 3 tane gezegen resminin olduğu bir resim var.Bu resimde 3 tane  tıklnabiir alan var:sun,mercury,venus.

Kullanıcı hangisine tıklarsa o gezegenle ilgili resme  yönleniyor.

Tıklanabilir alan oluşturulan resim(harita):

güneş

mercur

venus

<map name=”planetmap”>

//burda yazılan name img tagınının “usemap” attributesinde kullanılacaktır

<area shape=”rect” coords=”0,0,82,126″ alt=”Sun” href=”sun.htm” />

<area shape=”circle” coords=”90,58,3″ alt=”Mercury” href=”mercur.htm” />

<area shape=”circle” coords=”124,58,8″ alt=”Venus” href=”venus.htm” />

</map>

<img src=”planets.gif” width=”145″ height=”126″ alt=”Planets” usemap=”#planetmap” />

Böylece hangi nesneye gidilirse onun resmi açılacaktır.

DERYA GÜNDÜZ

sayfanızda bulunan radio butonlardan seçili olanıın değerini almak için, name değerine göre radio yu bir değişkene atıp seçili olanı bularak değerini alabilirsiniz. ilk olarak radio değerlerimizi oluşturalım.

[html]

<input type=”radio” name=”renkler” id=”renkler” value=”kırmızı”>kırmızı</input><br>
<input type=”radio” name=”renkler” id=”renkler” value=”truncu”>truncu</input><br>
<input type=”radio” name=”renkler” id=”renkler” value=”mavi”>mavi</input><br>
<input type=”radio” name=”renkler” id=”renkler” value=”sarı”>sarı</input><br>
<input type=”radio” name=”renkler” id=”renkler” value=”beyaz”>beyaz</input><br>
<input type=”radio” name=”renkler” id=”renkler” value=”siyah”>siyah</input><br>
<input type=”submit”  value=”Göster” onclick=”goster();”/><br>
daha sonra javascript bölümü ile renkler adındaki radio butonlardan seçili olanları alalım.
[javascript]

<script language=”javascript”>
function goster()
{
var radio = document.getElementsByName(‘renkler’);
for (i=0; i<radio.length; i++){
if (radio[i].checked == true)
alert(radio[i].value)
}
}
</script>
her adımda seçili olanın değerini ekrana yazdırmış olduk. bu kodu değiştirerek değer ile istedğiniz işlemi yapabilirsiniz.

tasarımınızda ekran çözünürlüğüne göre yerleşimler yada boyut ayarlamaları yapacaksanız bu kısa kod işinize yarayacaktır.

?View Code JAVASCRIPT
<script language="javascript">
<!--
document.write('<p> +screen.width+ ' x ' +screen.height+ '</p>');
//-->
</script>

html select içerisindeki seçenekleri seçtikçe javascript fonksiyonunu çağırıp işlem yapmak istiyorsanız ve yaptığınız sistem firefox ve opera da çalışıyor olmasına rağmen IE ve Chrome da sorun çıkartıyorsa aşağıdaki değişikliği yaparak düzeltme yapabilirsiniz.

ilk hali

?View Code HTML4STRICT
1
2
3
4
5
6
7
8
9
<select id="kategoriler">
 
     <option onclick="kategoribilgiGetir(1);" value="1">kategori 1</option>
 
     <option onclick="kategoribilgiGetir(2);" value="2">kategori 2</option>
 
     <option onclick="kategoribilgiGetir(3);" value="3">kategori 3</option>
 
</select>

son hali

?View Code HTML4STRICT
1
2
3
4
5
6
7
<select id="kategoriler" onchange="kategoribilgiGetir(document.getElementById(kategoriler).value);">
     <option value="1" >kategori 1</option>
 
     <option value="2">kategori 2</option>
 
     <option value="3" >kategori 3</option>
</select>

 

Bağımsız bir kuruluş olan W3C (World Wide Web Consortium) organizasyonu tarafından tasarlanan ve bağımsız bir yapıya sahip olan XML (extensible Markup Language),kişilerin kendi etiketlerini tanımlayarak bu etiketler ile hiyerarşik yapı kurabildikleri ,bunları istedikleri zaman değiştirebildikleri ; esnek, teknolojiden -platformdan bağımsız text tabanlı bir meta dilidir. Xml açılımının içerdiği “markup” onun tagler ile kullanıldığını,”exensible” de onun genişletilebildiği yani standart taglerin değil de kendimizin oluşturduğu farklı tagleri de kullanabileceğini ifade eder. Html de bir markup dilidir fakat Xmli Htmlden ayıran en önemli özellik standart taglerin değil de kişilerin tanımladıkları taglerin kullanabiliyor olmasıdır.

Şimdi teknolojiden-platformdan bağımsız derken ne kastettiğimi biraz daha açmak istiyorum:

Günümüz teknolojisi o kadar zenginleşti ve çeşitlendi ki…..Farklı farklı işletim sistemleri,programlar… Bunlar bir yana bir programın bile birden çok farklı versiyonu var. Bu kadar çeşitliliğin olması şüphesiz yanında uyum problemlerini getirecektir.Bir dosyayı aynı programın farklı versiyonlarında çalıştırmak istediğimizde bile zaman zaman problem yaşamaktayız,kaldı ki farklı program ve işletim sistemlerinde yaşanmasın.Bütün teknolojilerde ortak olarak açılan ve çalışan tek dosya türü text dosyalarıdır(notepad).Ama notepad ile en basitinden bir tablo oluşturup bunun üzerinde çalışmak istediğimizde bile bu tabloyu organize etmek baya bir zor olacaktır:kolonların sırası kayabilir,karışabilir….Bunun yerine tablolarımızı hiyerarşik yapı ile xmle atmak işimizi bayağı bir kolaylaştıracaktır.Xml verinin hızlı bir şekilde sogulanmasını,değiştirilmesini,transfer edilmesini,verinin içerik bilgisi ile saklanmasını(bu noktada htmlden ayrılır) sağlar.Xmlin güzel yanlarından birtanesi de uluslararası bir standarttır ve evrensel bir formattır ve firewallara takılmaz(text tabanlı olmasından kaynaklı).

Bir dosyanın xml dosyası olduğu dosyanın başında yazan <?xml version=”1.0″ encoding=”utf-16”?> ifadesinden anlaşılır.Htmldeki gibi açılan tag kapanmalıdır.Genel anlamda xml dosya akışı şu şekilde olur.

dosya akışı şu şekilde olur.

<?xml version=1.0 encoding=utf-8 ?>

<kategoriler>

  <kategori>

    <kategoriID>1</kategoriID>

    <kategoriAdi>meyveler</kategoriAdi>

  </kategori>

  <kategori>

    <kategoriID>2</kategoriID>

    <kategoriAdi>sebzeler</kategoriAdi>

  </kategori>

</kategoriler>

Veri tabanından veri çekerek xmle yazdırılabilir ve gerektikçe xmlden okunabilir.Bu şekil bir kullanım daha mantıklı olacaktır,çünkü veri tabanından bilgi almak istediğimizde program her defasında veri tabanına bağlanmak zorunda kalacaktır,oysa ki bir defa bağlanıp veri tabanındakileri xmle yazdırıp gerektikçe xmlden okumak performans,veri tabanını çok meşgul etme ve daha birçok açıdan daha olumlu sonuçlar yaratacaktır.Bu okuma ve yazdırmaları yapmak üzere tanımlanmış “ReadXml ve WriteXml” nesneleri vardır.

WriteXml şu şekilde kullanılır:

SqlConnection conn = new SqlConnection(“server=derya-pv\\sqlexpress;database=Northwind;integrated security=true”);

            SqlDataAdapter adp = new SqlDataAdapter(“select CategoryID,CategoryName from Categories”, conn);

            DataSet dt = new DataSet();

           adp.Fill(dt);

            dt.WriteXml(dosya);

Böylece veri tabanındaki bilgiler xmle yazılmış oldu.Her veri çekmek istediğimizde “ReadXml” ile verileri xmlden alıp işleyebiliriz.Yada satır satır okuma ve yazma yapmak için XmlTextReader ve XmlTextWriter da kullanılabilir.

Oluşturulan Xml üzerinde update,delete işlemleri için de “XmlDocument” ve “XmlNode” nesneleri oluşturulup kullanılır.

Kimi zaman belirli bir kısmı üzerinde değişiklik yapmak isteriz,bu durumda hepsini belleğe almak yerine sadece değiştirmek istediğimiz kısmı almalıyız.Bunun içinde şu nesneler kullanılmalı:

XPathDocument()-xml şemayı okuyacak nesne

XPathNavigator()-doküman üzerinde gezinecek nesne

XPathNodeNaveigator()-nodelar üzerinde tek tek gezinecek nesne

DERYA GÜNDÜZ

© 2010 bilyaz.com , Programlama Makaleleri, Yazılım Makaleleri , Örnek Kodlar , Eğitim Videoları , C#,ASP.NET,SQL,PHP Suffusion WordPress theme by Sayontan Sinha