Asp.Net UpdatePanel içinde bulunan iki kontrolü birbirine bağlama

by hakan 21. Ağustos 2008 09:41

Merhaba Arkadaşlar ;

Yine forumlarda çok gördüğüm sorulardan bir tanesi. "Update panel içinde bulunan dropdown listtek verileri nasıl diğer ikinci bir kontrol'e aktarırım?" ikinci bir kontrolden kastım genelde datalist gridview gibi kontrolleri soruyor herkes. Aslında yapı olarak baktığımızda çok  basit bir yapı ile işlemimizi gerçekleştireceğiz. Lafı fazla uzatmadan hemen örneklerimize geçelim.

1. Bu örneğimizde sizlere Asp.Net DropdownList te bulunan şehirlerden bir tanesini seçtiğimde ikinci bir kontrolüm olan datalistte verileri göstereceğim.

Sayfama Update paneli sürükleyip bırakıyorum ve içeriğine  ContentTemplate açıyorum. Unutmadan ekleyeyim , Ajax araçlarını kullanabilmeniz için sayfanızda mutlaka ScriptManager olması gerekmektedir.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
</ContentTemplate>
</asp:UpdatePanel>


Daha sonra updatePanel içeriğime 1 Tane DropDownList, 1 tane DataList ve 2 Tane SqlDataSource atıyorum. 1. DataSource 'umu DropDownListteki verilerimi bind ederken kullanacağım ikinci DataSource ise DropDownListten gelen değere göre DataList'te göstereceğim

UpdatePanel içindeki HTML tarafında Verileri bağlamadan önceki halini gösterelim.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>


<asp:DropDownList ID="DropDownList1" runat="server"
AppendDataBoundItems="true">
<asp:ListItem Enabled="true">Seçiniz</asp:ListItem>
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"></asp:SqlDataSource>

<asp:DataList ID="DataList1" runat="server">
<ItemTemplate>
</ItemTemplate>
</asp:DataList>

<asp:SqlDataSource ID="SqlDataSource2" runat="server"></asp:SqlDataSource>

</ContentTemplate>
</asp:UpdatePanel>

Şimdi ise Dropdown'a gelecek şehirleri bağlayalım. Verileri görelim.
Gördüğünüz gibi sol tarafda hemen şehirler listelenmeye başladı. Şimdi bizim burada yapacağımız işlem yine yukarıda anlattıklarım gibi çok basit olacaktır. Şöyleki DropDownListteki seçili olan Şehirin ID değerini yada sizin atamış olduğunuz Value olarak tanımladığınız değeri yakalamaya.

Bunun için ikinci SqlDataSource 'umun sql Cümleciğine kendime göre düzenledim.

Şöyleki "Select ID,SehirAdi,taxiCost from loccities Where ID=@ID" , Burada Tekrar ID si benim Veritabanımdan ID sine eşit olanın SehirAdi, tekrar ID ve taxi ücretini alayım ve datalistimde göstereyim.

Yanlız DataSource daki parametre değerini şu şekilde belirliyoruz. Control'umuzun yani DropDownList'imizin SelectedValue su ile seçili olan şehirin Atanmış ID değerini yakalıyor ve bunu 2. Datasource'me bildiriyor ve sonuç olarakda datalist'de verileri listeliyoruz.

Tabi birde unutmamak gerekir ki DropDownList 'imizin EnablePostBack değerini True olarak işaretlemeliyiz. Bunu yapma nedenimiz ise Seçtiğimiz değeri postback işlemi sırasında yakalamak olacaktır.

Datalistimizide DataSource mize bağlamıştık hatırlarsanız. Şimdi Datalist içeriğinde yazdığım html tarafındaki örnek olarak yazılara bakalım.


<asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource2">
<ItemTemplate>
SehirAdi : <%#Eval("SehirAdi") %>
TaxiCost : <%#Eval("TaxiCost") %>
ID:<%#Eval("ID") %>
</ItemTemplate>
</asp:DataList>

Gördüğünüz gibi ŞehirAdını Taxi ücretini ve tekrar ID değerini Datalist'imde yazdırıyorum. Ve DataSoruce olarakda belirlediğim ve seçtiğim SqlDataSource gözüküyor.

Uygulamamızı çalıştırdığımızda otomatik olarak verilerin dolduğunu ve listelendiğini göreceksiniz.

 

 

 

 

Umarım faydalı olmuştur.

  

Yorum ekle


 

biuquote
  • Yorum
  • Canlı önizleme
Loading



Powered by BlogEngine.NET 1.4.0.0
Theme by Mads Kristensen - Düzenleme ve Uyarlama Hakan COŞAR
Lida Dai Dai Hua Jiao Nang Seo Yarışması(Kerem Arda için eklenmiştir)