Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

Asp.NET UpdatePanel Kontrolü İçinde FileUpload Kontrolü Kullanımı

Asp.NET projelerinde Ajax tabanlı UpdatePanel kontrolü içinde her türlü işlevi asenkron işlemlere tabii tutabilirken FileUpload nesnesinde çok büyük bir sıkıntı yaşıyoruz.Çünkü FileUpload nesnesi asenkron yapıda bir kontrol olmadığından dolayı, UpdatePanel içindeki yapımızı komple bozmamıza sebep olabiliyor.Bu yazımda FileUpload nesnesini, UpdatePanel içerisinde çalıştırmayı görelim.

Varsayılan olarak UpdatePanel kontrolünün içinde PostBack işlevine sebep olan kontroller Asenkron yapıdadırlar.PostBack talebi geldiği anda, ilgili alanı PostBack olmasına sebep olurlar.Ancak bu gibi durumlar da, yani UpdatePanel içinde FileUpload gibi senkron yapıdaki kontrollerimiz kullanıldığında, PostBack kontrollerinin bazılarını işaretleyip, sayfanın PostBack olmasını sağlayabiliriz.

Bu işaretleme işlemini de UpdatePanel kontrolü içinde Trigger tanımlayarak yapabiliriz.UpdatePanel içinde ki Trigger’da bir PostBack nesnesi tanımlanır ve o nesne tetiklendiği zaman sayfa PostBack olacaktır.

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <Triggers>
        <asp:PostBackTrigger ControlID="btnTik" />
    </Triggers>
    <ContentTemplate>
                        <asp:FileUpload ID="fuResim" runat="server" Font-Bold="True" Font-Names="Aharoni" Height="33px" Width="318px" />
                        <asp:Button ID="btnTeknolojiEkle" runat="server" Text="Teknoloji Ekle" CssClass="buttons" OnClick="btnTik" />
    </ContentTemplate>
</asp:UpdatePanel>

Yukarıda gördüğünüz gibi, UpdatePanel içine eklediğimiz Trigger sayesinde “btnTik” ismindeki Button nesnesini işaretledik.Bu durumda, bu nesnemiz tetiklendiği zaman PostBack olayı gerçekleşecektir.

Haliyle PostBack olayı gerçekleştiği zaman, FileUpload nesnemiz senkron yapıda olduğundan dolayı çalışacaktır ve işlemlerimize devam edebileceğiz.

Şimdi kafanıza takılan bir soruyu siz sormadan ben cevaplayayım.
Madem bu şekilde yapınca PostBack oluyor, o halde benim UpdatePanel kullanmama ne lüzum var?” diye sorarsanız eğer, UpdatePanel içerisinde birden fazla PostBack nesnesi mevcut olabilir.Biri FileUpload gibi nesneler için işlev yaparken diğeri başka işlev yapabilir.Bu yazının giriş bölümünde dediğim gibi “..UpdatePanel içindeki yapımızı komple bozmamıza sebep olabiliyor..” sözüm bu konuyu gayet teferruatıyla açıklıyor.Ben bir UpdatePanel içinde, birden fazla işlem yapabilirim.Haliyle bir FileUpload nesnesi için o UpdatePaneli kaldıracağıma, Trigger sayesinde FileUpload işlemini yapacak PostBack nesnesine PostBack olayını gerçekleştirir.

UpdatePanel nesnesinin bu şekilde engel olduğu nesneler de, Trigger kullanabilirsiniz.
İyi çalışmalar..

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir