سلام من یک برنامه دارم که تعداد زیادی یوزر کنترل داره. در هر صفحه یوزر کنترل های مخصوص به اون صفحه بصورت داینامیک لود و نمایش داده می شه.اما من ۲ مشکل اینجا دارم.
اول : اینکه با ریفرش شدن صفحه توسط دکمه موجود در یوزر کنترل ۲ تمامی اطلاعات موجود در یوزر کنترل یک (که از دیتابیس میاد) پاک می شه و از دست می ره.
اول: بنده نمی تونم بین یوزرکنترل های لود شده تبادل داده کنم یعنی می خوام یوزر کنترل شماره ۲ بتونه به اطلاعات یوزر کنترل یک دسترسی پیدا کنه و اطلاعات یک شی موجود در اونو که مثلا لیبل هست رو بخونه
لطفا راهنمایی بفرمایید
برای مورد اول میتونید اطلاعات رو با Ajax ارسال کنید تا صفحه رفرش نشه
برای سوال 2 هم با Jquery میتونید مقادیر را بدست بیارید از روی صفحه
مشکل همینجاست.
صفحه حتما باید ریفرش بشه. بخاطر اینکه کدنویسی به این صورت هست که با کلیلک بر روی دکمه انتخاب موجود در یوزر کنترل اول id اون رکورد به صفحه والد با استفاده از respo.redirect ارسال می شه تا یوزرکنترل دوم بتونه id رکورد انتخابی رو بدست بیاره و با استفاده از اون بتونه بره فراخوانی داده از دیتابیس کنه.
حالا وقتی صفحه ریفرش می شه اطلاعات یوزرکنترل اول از دست میره
مثال عینی می زنم
یوزرکنترل اول شامل ۲ بخشه جستجوی و نمایش لیست
یوزر کنترل دوم شامل نمایش جزئیات رکورد انتخابی ای هست که از لیست یوزرکنترل اول انتخاب شده.
وقتی جستجو می کنم و فیلتر می زارم لیستی که باید بیاره رو میاره و وقتی روی یکی از موارد لیست شده کلیک می کنم با استفاده از ترفند بالا که توضیح دادم یوزرکنترل ۲ عمل می کنه(کد موجود در urlرو برمیداره و میره به دیتابیس اطلاعات رو میاره) ولی!!! زمانی که روی یکی از موارد لیست شده کلیک می کنم اطلاعات لیست موارد فیلتر شده از دست میره (بخاطر ریفرش شدن صفحه). اگرم صفحه ریفرش نشه کد رکورد انتخابی به دست یوزرکنترل ۲ نمی رسه که بتونه جزئیات رو از دیتابیس بیاره.
یعنی اگر صفحه ریفرش نشه یوزرکنترل ۲ کار نمی کنه و اگر صفحه ریفرش بشه لیست موارد فییلتر شده اطلاعاتش از دست میره
برای اینکه اطلاعات از دست نره میتونید در Session نگهداری کنید و پس از لود مجدد در جای خودشون قرار دهید
command string به تناسب فیلتر ها تولید می شه
فیلتر ها رو توی سسشن بریزیم یا لیست نمایش داده شده رو؟
بعدش تعدد ایحاد سشن بار روی سرور ایجاد می کنه و سرعت لود رو میگیره.
به نظرم خروجی رو نگه دارید تا مجبور نباشید مجدد کوئری را اجرا کنید
بعد از لود مجدد سشن را null کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)