PDA

View Full Version : سوال: مشکل با User Control کمککککککککک



پروگرامنویس
سه شنبه 03 بهمن 1391, 13:22 عصر
سلام
من توی برنامه نویسی و طراحی صفحه های کنترل پنل سایت به مشکل برخوردم!!
من دو تا حساب دسترسی تو سایت در نظر گرفتم ،
مدیر سایت و نویسنده های سایت.
بعد اینکه کسی لاگین میکنه میره تو صفحه اصلی کنترل پنل که توش منوی صفحات دیگس(ویرایش اخبار و کاربران و...).اگه کاربر مدیر باشه یا نویسنده گزیته های منو (لینک به صفحه ها) باید عوض بشه.

اول من اومدم فقط یه صفحه aspx ساختم که توی متد لودش گفتم با توجه به نقش کاربر لاگین کرده،لینک منوها تغییر کنه ،بعدش چندتا صفحه UC ساختم (صفحه های دیگه سایت مثه افزودن و پاک کردن و..)تا اینجا همه چی درست بود حتی لینک منو ها هم درست کار میکرد و صفحات توی پنل صفحه اصلی درست لود میشد ولی مثلا وقتی صفحه(UC) اد لود میشد دکمه های صفحه UC اصلا عمل نمی کرد چون این UC ها هنگام اجرا به صفحه لود میشن و تگشون رو صفحه اصلی نمیشناسه:افسرده: .

میدونم توضیحاتم زیاد واضح نبود ،پوزش!! اگه میتونید راه حلی کمکی بدید ممنون میشم

mRizvandi
سه شنبه 03 بهمن 1391, 14:51 عصر
قسمت اول داستان که درسته!
قسمت دوم داستان یه خرده نیاز به وضوح بیشتر داره، تا اونجایی که من متوجه شدم:
شما چند یوزرکنترل درست کردی که توی یک صفحه aspx بصورت داینامیک داری لود می کنی؟ (اگر درست باشه) خب کدهایی که توی اون یوزرکنترل نوشتی باید عینا کار کنه! دلیلی برای کار نکردن نداره.


تگشون رو صفحه اصلی نمیشناسه

یعنی خطا داری روی صفحه؟

پروگرامنویس
سه شنبه 03 بهمن 1391, 19:10 عصر
قسمت اول داستان که درسته!
قسمت دوم داستان یه خرده نیاز به وضوح بیشتر داره، تا اونجایی که من متوجه شدم:
شما چند یوزرکنترل درست کردی که توی یک صفحه aspx بصورت داینامیک داری لود می کنی؟ (اگر درست باشه) خب کدهایی که توی اون یوزرکنترل نوشتی باید عینا کار کنه! دلیلی برای کار نکردن نداره.

یعنی خطا داری روی صفحه؟

دوست عزیز
من وقتی یکی از یوزرکنترل ها رو بصورت داینامیک فرا میخونم(با استفاده از منوی صفحه) اون صفحه بدون هیچ مشکی لود میشه و حتی دستورات لود صفحه یوزرکنترل هم اجرا میشه، ولی وقتی مثلا روی دکمه ویرایش اخبار این صفحه(یوزرکنترل) کلیک میکنم تا محتویات صفحه یوزرکنترل آپدیت شه فقط صفحه رفرش میشه (لود میشه) و کدهای دکمه وبرایش اصلا اجرا نمشه!
امیدوارم تونسته باشم درست توضیح بدم!
اصلا بنظر شما استفاده از یوزرکنترل واسه چنین سناریویی درسته ؟
من بیشتر قصدم اینه که از صفحات کمتری استفاده کنم تا سایت خلوت تر و کم حجم تر شه(به نظرت منطقیه؟)
بعد به سرم زد از خیرش بگرزم برم سراغ مستر پیج،دو تا مسترپیج برای ادمین ها و نویسنده هاساختم که تا موقع لاگیم شدن کاربر وقتی نقش ش تایین شد یکی از اینا اجرا شه با منوهای استاتیک(کاربر ادمین یا نویسنده). ولی با مستر پیج هام به مشکلات زیادی بر خوردم ،مثلا واسه اینکه مجبور نشم توی متدلود همه صفحه ها session رو کنترل کنم اومدم کنترل session رو فقط تو متد لود دو تا مستپریج نوشتم ولی وقتی صفحه ای رو اجرا میکنم فقط دستورات لود اون صفحه اجرا میشه و کنترل session انجام نمیشه!:ناراحت: کلا همه چی بهم ریخته
ممنون میشم کمکم کنی

mohsenre
سه شنبه 03 بهمن 1391, 23:25 عصر
فکر میکنم از مستر پیج ها زمانی استفاده میشه که یه قسمتی از برنامه که ثابته رو تو مستر مینویسیم .حالا چون شما session رو که تغییر میکنه در مستر که تغزیبا ثابته مینوسی ....
شاید باید session رو تو صفحات .aspx بنویسید

mRizvandi
چهارشنبه 04 بهمن 1391, 12:10 عصر
من وقتی یکی از یوزرکنترل ها رو بصورت داینامیک فرا میخونم(با استفاده از منوی
صفحه) اون صفحه بدون هیچ مشکی لود میشه و حتی دستورات لود صفحه یوزرکنترل هم اجرا
میشه، ولی وقتی مثلا روی دکمه ویرایش اخبار این صفحه(یوزرکنترل) کلیک میکنم تا
محتویات صفحه یوزرکنترل آپدیت شه فقط صفحه رفرش میشه (لود میشه) و کدهای دکمه
وبرایش اصلا اجرا نمشه!

اینی که شما می گی و الان اتفاق افتاده، برخلاف منطق یوزرکنترل هست! من درکی ازش ندارم، نمی دونم کجای کار مشکل داره!!!
در خصوص سناریو:
منم اول همین کار رو کردم، ولی بعدا تصمیم گرفتم که مستر پیج استفاده کنم با منوی داینامیک یا مثل شما دو مسترپیج با منوی استاتیک، بستگی به خودت داره که چطور راحتی یا چقدر باید با منوها بازی کنی.



ولی با مستر پیج هام به مشکلات زیادی بر خوردم ،مثلا واسه اینکه مجبور نشم توی
متدلود همه صفحه ها session رو کنترل کنم اومدم کنترل session رو فقط تو متد لود دو
تا مستپریج نوشتم ولی وقتی صفحه ای رو اجرا میکنم فقط دستورات لود اون صفحه اجرا
میشه و کنترل session انجام نمیشه!:ناراحت: کلا همه چی
بهم ریخته

Page_Load مربوط به مسترپیح حتما فراخوانی میشه، مگه میشه پیجی که از مسترپیج گرفته شده، در زمان لود شدن، Page_Load مسترپیج رو کال نکنه! اصلا امکانپذیر نیست، شاید شما تقدم و تاخر این Page_Loadها رو رعایت نکردی
اول Page_Load پیج اتفاق می افته بعد Page_Load مسترپیج، شاید سناریویی که شما الان چیدی مناسب نباشه.
و در آخر به نظر من، سایت بدون مسترپیج و تم در ASP.NET سایت نیست! سعی کن مشکلاتش رو حل کنی. البته مسترپیج چیز خاصی نداره که حل نشده باشه تا حالا. نگرانش نباش.

پروگرامنویس
چهارشنبه 04 بهمن 1391, 17:16 عصر
اینی که شما می گی و الان اتفاق افتاده، برخلاف منطق یوزرکنترل هست! من درکی ازش ندارم، نمی دونم کجای کار مشکل داره!!!
در خصوص سناریو:
منم اول همین کار رو کردم، ولی بعدا تصمیم گرفتم که مستر پیج استفاده کنم با منوی داینامیک یا مثل شما دو مسترپیج با منوی استاتیک، بستگی به خودت داره که چطور راحتی یا چقدر باید با منوها بازی کنی.

Page_Load مربوط به مسترپیح حتما فراخوانی میشه، مگه میشه پیجی که از مسترپیج گرفته شده، در زمان لود شدن، Page_Load مسترپیج رو کال نکنه! اصلا امکانپذیر نیست، شاید شما تقدم و تاخر این Page_Loadها رو رعایت نکردی
اول Page_Load پیج اتفاق می افته بعد Page_Load مسترپیج، شاید سناریویی که شما الان چیدی مناسب نباشه.
و در آخر به نظر من، سایت بدون مسترپیج و تم در ASP.NET سایت نیست! سعی کن مشکلاتش رو حل کنی. البته مسترپیج چیز خاصی نداره که حل نشده باشه تا حالا. نگرانش نباش.

ممنون!
پس شما میگید از خیر یوزرکنترل بگذرم و از مستر استفاده کنم؟ پس امکانش هست که وقتی یه پیج aspx رو لود میکنم هم متد لود مستر پیج اجرا شه هم متد لود این پیج ؟ بنظرتون کدوم بهتره اینکه session رو توی مستر پیج کنترل کنم یا اینکه بیام توی تمام صفحه ها این شرط رو بنویسم؟!

mRizvandi
چهارشنبه 04 بهمن 1391, 20:50 عصر
هر طور که خودتون صلاح می دونید، ولی من بدون مسترپیج و تم کار نمی کنم، اصلا برام امکانپذیر نیست!
چه کنترلی می خوای انجام بدی؟
رویدادهای Page_Load مسترپیج و پیج اتفاق می افته، می تونی از هر کدوم که نیاز داری استفاده کنی، اما اگه کاری انجام می دی که توی همه پیجها ثابت هست می تونی یک کلاس جدید برای Page بسازی و پیجها رو از اونها اینهریت کنی، اینطوری نیازی نیست که کد رو توی همه پیجها تکرار کنی، سناریوی این کار بستگی به عملی داره که شما مدنظر داری