Repeater içindeki LinkButton'ın UpdatePanel ile full postback yapmasını engellemek

Nisan 2013 | Faruk Aydoğan, Yazılım Geliştirme Uzmanı
Repeater içerisinde bir LinkButton'ınız varsa ve bunun da bir ItemCommand'ı var ise UpdatePanel kullansanız da sayfa postback yapacaktır. Bundan kurtulmak için şöyle bir yöntem izlemeniz gerekmektedir. Öncelikle Repeater'ınızın ItemDataBound'una bir event bağlamanız gerekecektir. Ve daha sonra sayfanızdaki ScriptManager üzerinden AsyncPostBackControl'ünü Repeater içerisindeki LinkButton'a bağlamanız gerekir.

  protected void MyRepeater_ItemDataBound(object sender, RepeaterItemEventArgs e)    {
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item) {
LinkButton MyLinkButton= (LinkButton)e.Item.FindControl("MyLinkButton");
MyScriptManager.RegisterAsyncPostBackControl(MyLinkButton);
}
}

Bunu yaptığımızda Repeater' ın içerisindeki her LinkButton kontrolüne AsyncPostBackControl eklemiş oluyoruz ve sorun ortadan kalkıyor. Artık sayfanız full postback yapmıyor. Tabi bunun sağlanması içi küçük bir ayar daha gerekiyor. Sayfanızın başında bulunan <%@Page %> tagi içerisine de;

<%@Page ClientIDMode="AutoID" %>

özelliğini de eklemeyi unutmayın.


İyi günler, güzel kodlar dilerim :)