کنترل 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‌ را سبب خواهد شد و اکنون عملیات ارسال فایل به سرور صحیح کار خواهد کرد.


  • #
    ‫۱۵ سال و ۶ ماه قبل، جمعه ۴ اردیبهشت ۱۳۸۸، ساعت ۰۲:۵۷
    مثل همیشه بسیار عالی ...
    ممنون آقای نصیری .

    با تشکر ، مهرداد قاسمی
  • #
    ‫۱۵ سال و ۶ ماه قبل، دوشنبه ۷ اردیبهشت ۱۳۸۸، ساعت ۲۳:۳۱
    آیا امکان اینکه فایل هم به صورت Ajax آپل.د بشه وجود نداره ؟

    مثل کاری که Gmail برای Attachment هاش انجام میده ؟

    Silverboy
  • #
    ‫۱۵ سال و ۶ ماه قبل، سه‌شنبه ۸ اردیبهشت ۱۳۸۸، ساعت ۰۰:۳۳
    باید در نحوه‌ی ارسال فایل به سرور دست برد و اون رو سفارشی کرد. مثلا با استفاده از یک generic handler . نحوه پیاده سازی آن‌را در jQuery می‌تونید اینجا مشاهده کنید:
    http://www.ajaxprojects.com/ajax/tutorialdetails.php?itemid=512

    توسط ASP.Net ajax هم همین مفهوم به شکل دیگری پیاده سازی می‌شود:
    http://msmvps.com/blogs/luisabreu/archive/2006/12/14/uploading-files-without-a-full-postback.aspx
  • #
    ‫۱۵ سال و ۵ ماه قبل، جمعه ۲۵ اردیبهشت ۱۳۸۸، ساعت ۱۵:۲۴
    ممنون خیلی مفید بود
  • #
    ‫۱۵ سال و ۴ ماه قبل، یکشنبه ۱۴ تیر ۱۳۸۸، ساعت ۱۵:۱۷
    ممنون خیلی خوب بود. یهreference خوب واسه ajax معرفی می کنید. مثلا همین پنجره captcha رو چجوری با ajax درست می کنن؟؟؟؟