Quantcast
Channel: Eren Çetin - Asp.NET
Viewing all articles
Browse latest Browse all 12

Bind vs. Eval

$
0
0

Sual: Muallim efendi,
Asp.Net projelerimde veri tabanından aldığım dataları kontrollere mark up kodlarımın içinde kah Eval ile Kah Bind ile bağlıyorum.
Örn : <asp:TextBox Runat="server" ID="TheNotes"  Text='<%# Bind("notes") %>' />

<asp:TextBox Runat="server" ID="TheNotes"   Text='<%# Eval("notes") %>' />

Pek ala ikiside iş görüyor fakat bu ikisi arasında ne fark war microsoftçu abiler neden bu iş için iki farklı metod yapma gereği duymuşlar bunu idrak edemedim.
Bu konuda beni aydınlatabilirmisin?

El-Cevab:
Elbette çekirge,

Eval tek yönlüdür, read onlydir. Data kaynağından kendisine parametre olarak geçilen kolona ait veriyi alır konulduğu yere atar. Olayı bu kadardır.
Bind bu işi yapar pek ala bu bağlamda iki fonksiyonda aynı görevi ifa eder fakat Bind'in Eval'den üstünlüğü kullanılan datasource kontrolüne veri bağladığı kontroün datasını geçebilmesidir. Update ve Insert işlemine veri gönderebilmesidir. Sen bunu Eval ile yapamassın.
Beni anlamadın daha açık bir şekilde ifade edeyim ;
Diyelim bir formview kontrolün var bu kontrolde textboxların dropdownların falan var.
Buraya veri çekmek içinde DataSource kontrolü kullanıyorsun. Sen bu data sourcdan select komutuyla çektiğin verileri Eval() ile pek ala gösterebilirsin. Ama iş bu kontroller üzerinde değişiklik yapıp DataSource'nun Update yada insert komutlarıyla bunu veritabanına yazmaya gelince Eval patlar. Böyle bir durumda verileri göstermek içinde yeni kayıt eklemek yada güncelleme yapmak kısacası datasource kontrolünün insert update ve delete komutlarına tanımladığın sorgulara parametre olarak geçmek istiyorsan Bind kullanmalısın.
Bind'ın kafadan select ile tutulan değerleri tutup parametre olarak gönderebilmek gibi bir yeteneği var. Yeterince açıktır umarım.

 

 

 


Viewing all articles
Browse latest Browse all 12

Latest Images