PDA

View Full Version : سوال: مشکل با فایل آپلود در updatepanel : باید 2 بار postback بشه



saeed_sho
یک شنبه 19 آذر 1391, 16:56 عصر
سلام
من از کنترل فایل آپلود در updatePanel استفاده میکنم که برای اینکه صفحه postback بشه از تریگر به این صورت استفاده میکنم

<asp:PostbackTrigger controlId="Button1" />
حالا مشکل اینجاست که صفحه به درستی پست بک میشه اما بار اول فایل آپلود HasFile رو false برمیگردونه اما بار دوم که فایل آپلود میکنم true برمیگردونه
فکر میکنم قبلا بحث شده بود اما نتونستم تاپیکش رو پیدا کنم
لطفا راهنمایی کنید
یا لینک تاپیک قبلی رو بدین

saeed_sho
یک شنبه 19 آذر 1391, 17:02 عصر
اینم بگم من در صفحه یه آپدیت پنل کلی دارم که همه ی کنترل ها رو داخلش گذاشتم و دو تا آپدیت پنل دیگه داخل این آپدیت پنل هست که هر کدوم یه dropdownlist رو آپدیت میکنن که این فایل آپلود و باتن بیرون از دو آپدیت پنل داخلی قرار دارن

fakhravari
یک شنبه 19 آذر 1391, 18:32 عصر
این کنترل در ابدیت پنل همیشه مقدار false داره.
باید از این کنترل استفاده نکنید.

saeed_sho
یک شنبه 19 آذر 1391, 18:41 عصر
این کنترل در ابدیت پنل همیشه مقدار false داره.
باید از این کنترل استفاده نکنید.
ببینید از تریگر استفاده میکنم تا پست بک بشه بار اول که پست بک شد false برمیگردونه ولی بار دوم true
این خیلی ضایع ست که کاربر باید دو بار آپلود کنه
میشه لطفا بگید از چه کنترلی استفاده کنم که در آپدیت پنل مشکل نداشته باشه؟

saeed_sho
سه شنبه 21 آذر 1391, 10:58 صبح
خودم راه حل رو پیدا کردم میزارم تا بقیه دوستان که این مشکلو دارن استفاده کنن و هم تاپیک به نتیجه برسه
مشکل اینه که فایل آپلود در آپدیت پنل باید پست بک بشه تا فایل آپلود بشه و باید از postbackTrigger قسمت تریگر آپدیت پنل استفاده بشه تا اینجا رو اکثرا میدونین و تکراری هستش
اما بار اول که پست بک بشه hasFile مقدار false برمیگردونه و بار دوم true
راه حل:
بار اول فرم attribute enctype رو نداره به خاطر همین که hasFile مقدار false برمیگردونه که بار دوم به بعد خودش attribute مربوطه میزاره
دلیلش اینه که asp.net برای همه ی page ها بصورت اتوماتیک attribute مربوطه رو موقع لود شدن اضافه میکنه اما در این مورد به خاطر فایل آپلود اینکارو نمیکنه و شما باید خودتون دستی اینکارو بکنید
در رویداد page_load بنویسید
if Not(page.IsPostBack) then
Page.Form.Attributes.Add("enctype", "multipart/form-data")
end if
منبع: http://blog.anofsinger.com/2007/10/file-upload-not-working-on-first.html
تاپیک به نتیجه رسید مدیر تالار لطفا تاپیک رو قفل کنید

fakhravari
چهارشنبه 22 آذر 1391, 09:56 صبح
این که جواب نمیده!!!

saeed_sho
چهارشنبه 22 آذر 1391, 10:45 صبح
این که جواب نمیده!!!
یعنی چی جواب نمیده؟
من چند بار استفاده کردم جواب داده و میده البته من در یوزر کنترل و در رویداد لود اون نوشتم
باید در تریگر آپدیت پنل هم از postbackTrigger استفاده کنید
کد رویداد page_load خودتون رو بزارید

saeed_sho
چهارشنبه 22 آذر 1391, 10:47 صبح
اینو ببین
http://blog.anofsinger.com/2007/10/f...-on-first.htm (http://blog.anofsinger.com/2007/10/file-upload-not-working-on-first.html)