PDA

View Full Version : RequiredFieldValidator و Ajax UpdatePanel



Neo Persian
سه شنبه 09 مرداد 1386, 13:14 عصر
دوستان یه مشکلی در رابطه با موضوع تاپیک دارم

برای یک TextBox یک RequiredFieldValidator گذاشتم و این TextBox درون یک UpdatePanel قرار داره

Button مربوطه هم درون این UpdatePanel هست

مشکل اینجاست که این RequiredFieldValidator به صورت client side عمل نمیکنه و updatePanel دستوراتی که برای Button تعریف شده رو انجام میده و به RequiredFieldValidator بی تفاوت است

چه طوری میتونم این مشکل رو حل کنم؟

rtech
سه شنبه 09 مرداد 1386, 18:32 عصر
بهتره بجای استفاده از Update Panel از این استفاده کنی :



http://tetlaw.id.au/view/javascript/really-easy-field-validation


هم شیک تره و هم بهتر و ساده تر عمل میکنه

Neo Persian
سه شنبه 09 مرداد 1386, 22:54 عصر
دوست عزیز ممنون از توجه شما

ولی من متوجه نشدم upate panel وردارم و به جای اون از Really easy field validation استفاده کنم؟؟؟؟؟؟

rtech
چهارشنبه 10 مرداد 1386, 00:11 صبح
این فقط یک پیشنهاد بود من نمیگم میتونه جای آپدیت پنل رو میگیره ولی اگر در صفحه ای که دارید چنین فرمی هست میتونید برای زیبایی کار ازش استفاده کنید

Nightbat
چهارشنبه 10 مرداد 1386, 10:24 صبح
بهتره بجای استفاده از Update Panel از این استفاده کنی :



http://tetlaw.id.au/view/javascript/really-easy-field-validation
هم شیک تره و هم بهتر و ساده تر عمل میکنه
این پاک کردن صورت مساله ست...
من هم این مشکل رو دارم.

Aidin
چهارشنبه 10 مرداد 1386, 11:05 صبح
مطمئن هستید کار نمیکنه ؟
من دقیقا همین کار رو می کنم و کاملا درست کار میکنه .
Property های RequiredFieldValidator رو تغییر میدید ؟

یک نمونه براتون ضمیمه کردم.

Neo Persian
چهارشنبه 10 مرداد 1386, 13:49 عصر
این نکته رو یادم رفت بگم که روی local به درستی کار میکنه ولی بر روی host به مشکل بر می خوره

Aidin
چهارشنبه 10 مرداد 1386, 13:55 عصر
فایل DLL Ajax را آپلود میکنید روی سرور ؟
اگه خارج از UpdatePanel بزاری کار میکنه ؟

مهدی کرامتی
چهارشنبه 10 مرداد 1386, 14:00 عصر
برای رفع مشکل فوق مشخصه EnableClientScript کامپوننت Validator مربوطه را False کنید، در جایی که میخواهید از مقادیر وارد شده استفاده کنید میبایست اعتبار فیلدهای ورودی را با کدی شبیه به زیر چک کنید:


if(Page.IsValid)
{
// do your action
}

Aidin
چهارشنبه 10 مرداد 1386, 14:04 عصر
البته اگه آدرسی که الان رو هاست هست رو بدی بهتر میشه جواب داد.

Neo Persian
چهارشنبه 10 مرداد 1386, 14:12 عصر
برای رفع مشکل فوق مشخصه EnableClientScript کامپوننت Validator مربوطه را False کنید، در جایی که میخواهید از مقادیر وارد شده استفاده کنید میبایست اعتبار فیلدهای ورودی را با کدی شبیه به زیر چک کنید:

دوست عزیز اگه EnableClientScript رو false کنم خاصیت client side از بین نمیره؟؟ اگه میشه بیشتر توضیح بدین

Aidin
چهارشنبه 10 مرداد 1386, 14:17 عصر
درسته
جناب کرامتی هم توضیح دادند که باید خودتون بطور دستی عمل Validation رو انجام بدین

Neo Persian
چهارشنبه 10 مرداد 1386, 14:18 عصر
فایل DLL Ajax را آپلود میکنید روی سرور ؟
اگه خارج از UpdatePanel بزاری کار میکنه ؟
شاید من اشتباه میکنم ولی Ajax Extensions برای من dll ایی تولید نکرده که بخوام upload کنم و فکر کنم تمام refrence هارو درون فایل web.config تعریف کرده

dll فکر کنم مربوط به ajax toolkit هستش

Neo Persian
چهارشنبه 10 مرداد 1386, 14:18 عصر
پس تست میکنم و نتیجه رو میگم ممنون از راهنمایی دوستان

m.hamidreza
چهارشنبه 10 مرداد 1386, 14:20 عصر
اگه روی textbox کد خاصی نداری از Update Panel بیارش بیرون خوب !


ولی Ajax Extensions برای من dll ایی تولید نکرده که بخوام upload کنم و فکر کنم تمام refrence هارو درون فایل web.config تعریف کرده

dll فکر کنم
Ajax کلا رو هاستت کار میکنه ؟ غیراز این مورد منظورمه ... dll های ajax رو خودت باید دستی کپی کنی که البته بستگی به host هم داره . رو بعضی host ها بدون کپی کردن هم جواب میده ! ولی الان مساله دوتاست !
--کار کردن Ajax
--کار کردن Validator

بگو چه خبره عزیز برادر ...

Aidin
چهارشنبه 10 مرداد 1386, 14:26 عصر
در ضمن در سایت وقتی از Ajax استفاده میکنی حتما از UpdateProgress استفاده کن .

m.hamidreza
چهارشنبه 10 مرداد 1386, 14:35 عصر
در ضمن در سایت وقتی از Ajax استفاده میکنی حتما از UpdateProgress استفاده کن .

دلیل "حتما" چه می باشد عزیز برادر ؟ :متفکر:

Aidin
چهارشنبه 10 مرداد 1386, 17:05 عصر
مطمئنا اجباری وجود ندارد
ولی وقتی یک کاربر وارد سایت میشود و روی یک لینک کلیک میکند چون عکس العمل رو نمی بینه این کار رو چند بار انجام میده و باعث سردرگمی بازدید کننده میشه.
البته یک پیشنهاد بود.
:)

Neo Persian
چهارشنبه 10 مرداد 1386, 17:08 عصر
دوستان nirvana و m.hamidreza

من لینک مربوط رو گذاشتم یعنی همون سایتی که پیاده سازی کردم و مشکل دارم

قسمت contact us

کل سایت ajax هست و نمیتونم update panel رو وردارم

m.hamidreza
چهارشنبه 10 مرداد 1386, 23:48 عصر
کل سایت ajax هست و نمیتونم update panel رو وردارم

عزیز برادر update panel رو برندار ! از این تکنولوژی می بایست استفاده نمود ! :چشمک:
چه نیازیه که textbox تو update panel باشه ؟! در واقع شما برای اجرای کد button نیاز به update panel داری و button هم که تو update panel هست دیگه نیازی به بودن textbox تو update panel نداریم ، textbox هارو از update panel بیار بیرون+validator ها، فقط button رو بزار باشه تو update panel .... اینجوری دیگه problem ای نیست ان شاءالله .

8 دفعه گفتم update panel ! :لبخند:

Neo Persian
پنج شنبه 11 مرداد 1386, 00:59 صبح
عزیز برادر update panel رو برندار ! از این تکنولوژی می بایست استفاده نمود ! :چشمک:
چه نیازیه که textbox تو update panel باشه ؟! در واقع شما برای اجرای کد button نیاز به update panel داری و button هم که تو update panel هست دیگه نیازی به بودن textbox تو update panel نداریم ، textbox هارو از update panel بیار بیرون+validator ها، فقط button رو بزار باشه تو update panel .... اینجوری دیگه problem ای نیست ان شاءالله .

8 دفعه گفتم update panel ! :لبخند:
خوب اینجا دیگه معلوم شد که مشکل از سواد من بوده چون فکر میکردم textbox هم حتما باید درون update panel باشه

medi33
دوشنبه 22 مرداد 1386, 05:59 صبح
سلام دوستان
من هم این مشکل رو داشتم .. نزدیک به 2 هفته فقط داشتم تو forum های سایت های مختلف دنبال دلیلش می گشتم. حتی در فیلم آموزشی که microsoft خودش منتشر کرد .. زمانی که از validatorCallOut و updatePanel استفاده میکنه صفحه خطای javascript میده

requierdFieldValidator با update panel مشکلی نداره ... مشکل زمانی به وجود میاد که از Validator CallOut برای نمایش Error message استفاده بشه...
برای رفع این مشکل یک dll وجود داره که باید اون رو در پروژه add کنید و چند خط رو باید به فایل web.Config اضافه کنید.
اگر کسی این dll رو خواست می تونید به من میل بزنید تا براتون بفرستم.. M3hdi.aspx@yahoo.com

AjaxToolkit باگهای دیگه هم داره
وقتی از updateProgress استفاده میشه و بعد از اون design صفحه رو تغییر بدین مخصوصا صفحه ای که درونش کد جاوا اسکریپت داشته باشید باز هم خطای javascript میده
البته هنوز راهی برای این پیدا نکردم :لبخند:

m.hamidreza
دوشنبه 22 مرداد 1386, 13:54 عصر
عزیز برادر اگه Textbox هارو بیرون UpdatePanel بزاری چطور ؟ بازم Error میده ؟

medi33
دوشنبه 29 مرداد 1386, 06:21 صبح
سلام دوستان
من یک dll برای رفع این مشکل upload میکنم به همراه یک فایل txt که باید چند خط تگ را به فایل web.config اضافه کنید!!!
dll رو به پوشه bin پروژتون add Refrence کنید.
موفق باشین!