۱۳۸۸/۰۲/۰۳

كنترل FileUpload داخل ASP.Net Ajax UpdatePanel


كنترل FileUpload زمانيكه داخل Ajax UpdatePanel قرار گيرد كار نمي‌كند و خاصيت Hasfile آن در اين حالت هميشه false بر مي‌گرداند، زيرا اين كنترل براي كار كردن نياز به post back كامل دارد. براي معرفي اين post back داخل update panel ، بايد يك تريگر به نام postbacktrigger را افزود و سپس ControlID آن‌را مساوي كنترلي قرار داد كه جهت ارسال فايل به سرور مشخص كرده‌ايم.
يك مثال:
<asp:UpdatePanel runat="server" id="UpdatePanel1">
<ContentTemplate>
<asp:FileUpload runat="server" id="FileUpload1" />
<asp:Button runat="server" id="btnSubmit" Text="Upload" />
</ContentTemplate>
<Triggers>
<asp:postbacktrigger ControlID="btnSubmit" />
</Triggers>
</asp:UpdatePanel>
اين تريگر عمليات post back‌ را سبب خواهد شد و اكنون عمليات ارسال فايل به سرور صحيح كار خواهد كرد.