PDA

View Full Version : بهترین روش(کنترل) برای نمایش Window در یک فرم که بتواند کد را Block کند!



majid_darab
دوشنبه 17 خرداد 1389, 12:11 عصر
با سلام و عرض خسته نباشید:
من در یکی از فرمهای خود نیاز دارم که یک سری اطّلاعات را از کاربر بگیرم و پس از گرفتن این اطلاعات از کاربر به او گزارشی را نشان دهم.
با توجه به اینکه اطلاعاتی که باید از کاربر بگیرم چند تا DropDown و TextBox بیشتر نیستند منطقی نیست که یک صفحه به طور کامل برای این منظور در نظر گرفته شود...
خوب به نظر بهترین گزینه نمایش یک ویندو (Window) برای ورود اطّلاعات است.
فرض کنیم من یک MultiView دارم که در یکی از View ها دکمه ای دارم که قراره Window مزبورو نمایش بده و پس از کد نمایش این ویندو در دکمه ی مربوطه پرشی دارم به View ی نمایش گزارش و استفاده از پارامترهای ارسالی کاربر.

برای حل مورد بالا من از ویندویی استفاده کردم که تماماً از جاواسکریپت استفاده می کرد و زمانی که سعی کردم اکثر کدهای جاواسکریپتو با Register کردن در کد بیهایند به کار ببرم به مشکلی برخوردم که به احتمال زیاد چاره ای جز تماماً جاواسکریپت کار کردن (بدون کد بیهایند)باقی نمی گذارد.
زمانی که ویندو نمایش داده می شود کد های پس از نمایش آن هم چنان ادامه می یابند و در نتیجه گزارش به کاربر نشان داده می شود و این در حالی است که هنوز هیچ پارامتری از کاربر دریافت نشده است.
================================================== ===
سوالات :
1-من از چه کنترل و یا روشی استفاده کنم که بتونم موقتاً اجرای ادامه ی کدهای پس از ظهور ویندو را متوقف کنم و پس از کلیک کردن دکمه ی ok ویندو ادامه ی کدهای پس از فرخوانی ویندو اجرا شوند؟
2- اگر توانستیم مورد بالا را حل کنیم بهترین گزینه برای پاس دادن پارامترهای ورودی کاربر چیست ؟ (با توجه به اینکه ویندو با فرم کار می کند و باید از یک فرم در داخل آن استفاده گردد آیا منطقی است که session های متعددی برای ارتباط این ویندو و فرم (ویوی) نمایش گزارش به کار گرفته شوند)

با تشکر
مجید داراب

MoslemMaleki
دوشنبه 17 خرداد 1389, 12:33 عصر
سلام
دوست عزیز از AJAX استفاده کن. اگه آشنایی نداری بگو که بیشتر راجبش صحبت کنیم.

1- پس از زدن دکمه، Enabled اون False بشه
2-Session بهترین فکره. برای چک کردن اون در یک تایمیر این کار رو انجام بده.

majid_darab
دوشنبه 17 خرداد 1389, 13:53 عصر
با سلام و عرض تشکر
من منظورتونو خوب متوجه نشدم...
آیا Ajax به بحثی که من داشتم ارتباط داشت ؟
من قسمت های بسیار زیادی از وب سایتو Ajax کار کردم...
اما در اینجا دنبال توقف موقتی قسمتی از کد هستم نه call Back.
اگر منظورتون این بود که دکمه ای که قراره ویندو رو ظاهر کنه Ajax ی کنم خوب این موضوع بازم به نظر بی فایده می یاد ... چون به هر تقدیر کد دکمه باید بره و بیاد (تماماً)
اگر بیشتر راهنمایی بفرمایید ممنون میشم...

با تشکر
مجید داراب

hamedsabzian
دوشنبه 17 خرداد 1389, 15:40 عصر
شما که از MultiView استفاده می کنید، چرا توی یک View دیگه اطلاعات رو نمایش نمی دید؟
اگه با زدن دکمه صفحه PostBack بشه و بعد پنجره باز بشه مشکلی نخواهید داشت.(میتونید چک کنید که پارامتر های مقداردهی شده یا نه بعد Script ها رو Register کنید). اگه در این زمینه مشکلی دارید بگید!


Session بهترین فکره.
دیر برو سراغ Session.
http://barnamenevis.org/forum/showthread.php?t=74434

majid_darab
دوشنبه 17 خرداد 1389, 21:52 عصر
من در ابتدا از شما عذر خواهی می کنم که توضیحات پست اولم یه مقدار برای تفهیم ناقص بودند ...
من در MultiView خود دوتا view دارم که در یکی نام گزاش انتخاب می شه و در همون view دکمه ی مشاهده رو کلیک می کنه که پس از کلیک پرشی به view ی شماره 2 برای نمایش گزارش دارم...
خوب بعضی از گزارشات هستن که پارامتر می خوان و بنابراین در View 1 به محض کلیک بر روی مشاهده قبل از پرش به ویو 2 یه ویندو باز می کنم که کابر اطلاعات مورد نیازو در اون وارد کنه ...
همان طور که واضح است ویندو با فرم دیگری کار میکنه و وقتی بر روی دکمه ی ویندو کلیک می کنیم که پارامترها رو بگیره و بسته شه ما در فرم دیگری هستیم.
در عین حال باید توجه نمود که فرم parent ما که در اینجا ویندو رو صدا زده (view 1) تبدیل به ویو شماره 2 شده و سعی در نمایش گزارشی داره که هنوز پارامتر نگرفته...
================================================== ========
هدف من این است که جلوی اجرا شدن کدهای پس از نمایش ویندو رو بگیرم (پرش به ویو 2 که این کدها در دکمه ی ویوی 1 پس از کد باز کردن ویندو قراردارند) و هنگامی دکمه ی روی ویندو انجام شد این کدها اجرا شوند...
داستان جالبیه ...
ما در اینجا با دوفرم سروکارداریم...(مامان-> مالتی ویو دار و بچه -> ویندو)
قضیه ی response.redirect در فرم بچه منتفی است چون فرم مامان خودش رو صفحه هست و ما فقط باید ویوشو عوض کنیم که خودش زودتر از موعد مقرر این کارو انجام داده




آیا ویندویی داریم که قادر باشه به محض ظهور جلوی ادامه ی کد رو بگیره و وقتی ok شد اجرای کد ها ادامه پیدا کنه...؟

با تشکر
مجید داراب