Bu konuyu bir çok yerde araştırmama rağmen sorunun çözümüne yönelik somut birşeyler hiç bulamamıştım. Ta ki bu güne kadar. Buradaki püf nokta data list dışarıdan bir buton ile textbox veya herhangi bir kontrole ulaşılmak istendiğinde sayfanın postback olduğudur. Yani post olan sayfa datalist’i tekrar boş değerlerle doldurur ve yeni girilmiş olan textbox’ın değeri yerine boş değer döner. Bu durumu engellemek için datalisti doldurduğumuz kısıma
1 2 3 4 |
if(!IsPostBack) { //Datalist datasource ve databind kodları.... } |
şeklinde bir kontrol koymamız yeterlidir. Bu kontrol sonrasında örneğin bir textboxt’ın değerine ulaşmak için öncelikle sorgu sonucu dönen veriyi bir for döngüsüne sokup gelen satır kadar çalıştırmak gerekiyor.
1 2 3 4 5 |
TextBoxt txt=(TextBox)DataListID.items[i].FindControl("txtAdı"); //DataListID= datalist elemanının id si string yenideger=txt.Text; |
şeklinde ulaşabiliyorum.
Kolay gelsin…