hamed_z
دوشنبه 16 مهر 1386, 12:09 عصر
با سلام خدمت دوستان
اولا خوشحالم که بعد از 20 ماه خدمت سربازی می تونم دوباره برنامه نویسی کنم. 20 ماه دوری از کامپیوتر مغز آدم فرمت میشه.
دوما : مشکلی که validator ها بعد از آپلود دارند اینه که باعث میشن ، رویداد کلیک button های موجود در صفحه رخ ندهد. حتی اگر خاصیت Causes validation مربوط به button را false کرده باشیم همچنان این مشکل پابرجاست. (همانطور که می دانید با false کردن این خاصیت برای button ها در هنگام کلیک روی آنها کنترلهای اعتبار سنجی یا همان validator ها عمل نخواهند کرد و فرم اعتبار سنجی نمی شود)
این مشکلی بود که بعد از آپلود سایت متوجه آن شدم در صورتیکه سایت روی client مشکلی نداشت و همه چیز درست کار می کرد. من از تاپیکهای دیگری که در رابطه با این موضوع بود، متوجه شدم که این مشکل هاستهای ایرانی است (البته این جمله از قول دوستان بود).
به هر حال همانطور که شما هم می دانید validator ها ، برای اعتبار سنجی فرم هم کد طرف سرور را تولید می کنند و هم کد طرف کلاینت را . اگر مرورگر قادر به کار با جاوا اسکربپت باشد ، منطق اعتبار سنجی طرف کلاینت به طور خودکار به مرورگر فرستاده می شود و اگر مرورگر از جاوا اسکریپت حمایت نکند ، روتینهای اعتبار سنجی به طور خودکار در کد طرف سرور پیاده سازی خواهند شد.
برای حل این مشکل باید خاصیت EnableClientScript مربوط به هر کدام از Validator ها را False کنیم. با این کار روتین اعتبار سنجی کلاینت را غیر فعال می کنیم و از روتینهای اعتبار سنجی طرف سرور استفاده خواهیم کرد.
این کار دو مزیت دارد:
یکی اینکه مشکل عمل نکردن رویداد کلیک button ها حل می شود.
دوم اینکه اعتبار سنجی طرف کلاینت فقط در Enternet explorer نسخه 4.0 به بالا کار می کند و با مرورگرهای دیگر از جمله Netscape که بسیاری از کاربران از این مرورگر استفاده می کنند کار نمی کند. پس بهتر است که خاصیت EnableClientScript مربوط به Validator ها را False کنیم تا اعتبار سنجی طرف کلاینت را غیر فعال کنیم و یا اینکه از کنترلهای اعتبار سنجی استفاده نکنیم و خودمان آنها را بنویسیم.
این کار دو مشکل دارد:
مشکلی که این روش دارد این است که فرم ما برای اعتبار سنجی به سرور فرستاده می شود و کاربر باید کمی منتظر بماند. :D
دوما ، مشکل دیگری که باید به آن توجه داشته باشیم این است که چون فرم ابتدا به سرور پست می شود کدهایی که درون رویداد کلیک دکمه ها نوشته ایم اجرا می شود. در صورتیکه اگر داده های ورودی کاربر اشتباه باشد نباید این کد ها اجرا شوند و نباید هیچ عملی صورت گیرد. چون اعتبار سنجی طرف کلاینت راغیر فعال کرده ایم این مشکل پیش می آید. برای اینکه این مشکل برطرف شود در اول روال کلیک دکمه خاصیت IsValid را چک کنید و در صورتیکه IsValid برابر با true باشد اجازه اجرای کد را بدهید
If IsValid <> False Then
کد شما
End If
موفق باشید
اولا خوشحالم که بعد از 20 ماه خدمت سربازی می تونم دوباره برنامه نویسی کنم. 20 ماه دوری از کامپیوتر مغز آدم فرمت میشه.
دوما : مشکلی که validator ها بعد از آپلود دارند اینه که باعث میشن ، رویداد کلیک button های موجود در صفحه رخ ندهد. حتی اگر خاصیت Causes validation مربوط به button را false کرده باشیم همچنان این مشکل پابرجاست. (همانطور که می دانید با false کردن این خاصیت برای button ها در هنگام کلیک روی آنها کنترلهای اعتبار سنجی یا همان validator ها عمل نخواهند کرد و فرم اعتبار سنجی نمی شود)
این مشکلی بود که بعد از آپلود سایت متوجه آن شدم در صورتیکه سایت روی client مشکلی نداشت و همه چیز درست کار می کرد. من از تاپیکهای دیگری که در رابطه با این موضوع بود، متوجه شدم که این مشکل هاستهای ایرانی است (البته این جمله از قول دوستان بود).
به هر حال همانطور که شما هم می دانید validator ها ، برای اعتبار سنجی فرم هم کد طرف سرور را تولید می کنند و هم کد طرف کلاینت را . اگر مرورگر قادر به کار با جاوا اسکربپت باشد ، منطق اعتبار سنجی طرف کلاینت به طور خودکار به مرورگر فرستاده می شود و اگر مرورگر از جاوا اسکریپت حمایت نکند ، روتینهای اعتبار سنجی به طور خودکار در کد طرف سرور پیاده سازی خواهند شد.
برای حل این مشکل باید خاصیت EnableClientScript مربوط به هر کدام از Validator ها را False کنیم. با این کار روتین اعتبار سنجی کلاینت را غیر فعال می کنیم و از روتینهای اعتبار سنجی طرف سرور استفاده خواهیم کرد.
این کار دو مزیت دارد:
یکی اینکه مشکل عمل نکردن رویداد کلیک button ها حل می شود.
دوم اینکه اعتبار سنجی طرف کلاینت فقط در Enternet explorer نسخه 4.0 به بالا کار می کند و با مرورگرهای دیگر از جمله Netscape که بسیاری از کاربران از این مرورگر استفاده می کنند کار نمی کند. پس بهتر است که خاصیت EnableClientScript مربوط به Validator ها را False کنیم تا اعتبار سنجی طرف کلاینت را غیر فعال کنیم و یا اینکه از کنترلهای اعتبار سنجی استفاده نکنیم و خودمان آنها را بنویسیم.
این کار دو مشکل دارد:
مشکلی که این روش دارد این است که فرم ما برای اعتبار سنجی به سرور فرستاده می شود و کاربر باید کمی منتظر بماند. :D
دوما ، مشکل دیگری که باید به آن توجه داشته باشیم این است که چون فرم ابتدا به سرور پست می شود کدهایی که درون رویداد کلیک دکمه ها نوشته ایم اجرا می شود. در صورتیکه اگر داده های ورودی کاربر اشتباه باشد نباید این کد ها اجرا شوند و نباید هیچ عملی صورت گیرد. چون اعتبار سنجی طرف کلاینت راغیر فعال کرده ایم این مشکل پیش می آید. برای اینکه این مشکل برطرف شود در اول روال کلیک دکمه خاصیت IsValid را چک کنید و در صورتیکه IsValid برابر با true باشد اجازه اجرای کد را بدهید
If IsValid <> False Then
کد شما
End If
موفق باشید