PDA

View Full Version : سوال: فراخوانی usercontrol ها در یک صفحه



yasmeen
دوشنبه 04 آذر 1387, 14:16 عصر
من می خوام با انتخاب منو usercontrol مربوط به همان منوی انتخابی در صفحه مثلا Default.aspx باز شود چه کار کنم مثلا در DotNetNuke چطور این کار را کرده

Amir Taghavi
دوشنبه 04 آذر 1387, 14:49 عصر
یه Place Holder تو صفحه ات بذار و از کد زیر استفاده کن:


myPlaceHolder.Controls.Add(LoadControl("~/UCs/myControl.ascx"))

Mousavmousab
پنج شنبه 19 بهمن 1391, 11:56 صبح
سلام


مشکلی که این دستور داره اینه که در زمان اجرا وقتی روی button ای که روی فرم لود شده کلیک کنی ( یعنی یک رویدادی اجرا بشه) این کنترل غیب میشه یا بهتر بگم محو میشه.

چطوری از این کار جلوگیری کنیم؟

iranolom
سه شنبه 13 فروردین 1392, 08:51 صبح
مشکلی که این دستور داره اینه که در زمان اجرا وقتی روی button ای که روی فرم لود شده کلیک کنی ( یعنی یک رویدادی اجرا بشه) این کنترل غیب میشه یا بهتر بگم محو میشه.

چطوری از این کار جلوگیری کنیم؟

کاملا درسته ؟؟؟ الان مشکل خود من هم هست ؟؟کسی پاسخی نداره ؟؟؟

amirsajjadi
سه شنبه 13 فروردین 1392, 09:26 صبح
سلام


مشکلی که این دستور داره اینه که در زمان اجرا وقتی روی button ای که روی فرم لود شده کلیک کنی ( یعنی یک رویدادی اجرا بشه) این کنترل غیب میشه یا بهتر بگم محو میشه.

چطوری از این کار جلوگیری کنیم؟

شما اگه enableviewstate یوزرکنترل رو false کنید بعد از اولین postback اطلاعاتش پاک میشه. البته این مشکل اینطوری حل میشه که توی formload دستور loadcontrol رو استفاده کنید که هربار postback اتفاق میافته دوباره دستور loadcontrol اجرا بشه و نمونه ای از کنترل ایجاد بشه.

iranolom
سه شنبه 13 فروردین 1392, 10:39 صبح
با سلام مجدد و تشکر از امیر سجاد عزیز


شما اگه enableviewstate یوزرکنترل رو false کنید بعد از اولین postback اطلاعاتش پاک میشه.
در حالت پیش فرض که true هست بازم گفتم که شاید فرقی بکنه نوشتم مقدارش رو هم true دادم خروجی گرفتم کنترل بعد از کلکی شدن یه دکنه از تو یوزر کلا حذف میشه


البته این مشکل اینطوری حل میشه که توی formload دستور loadcontrol رو استفاده کنید که هربار postback اتفاق میافته دوباره دستور loadcontrol اجرا بشه و نمونه ای از کنترل ایجاد بشه.

اینم که کاملا درسته و صحیح //الان مشکلمون تو بالا همینه دیگه چون نمی خوام تو لد بزارم کدمو


چند تا یوزر کنترل دارم قرار نیست همه شون لود بشن
چند تا دکمه هست رو هر کدوم کلیک بشه اون یوزر لود میشه و مقدارش رو می تونن تغییر بدن بعد هم رو دکمه کلیک بشه که بعد از کلکی رو دکمه دیگه اون کنترل یوزر لود نمی شه
تازه اینا همه شون تو اپدیت پنل قرار دارن

الان تنها راهیی که به ذهنم رسیده اینه که همه شون رو لود کنم خاصیت visible شون رو false کنم بعد رو هر دکمه ای کلیک شد بیام ویزیبله اون یوزر مربوطه رو ترو کنم

البته تعداد این یوزر ها زیاد میشه مثلا 5 تا هست ولی تو خروجی لیست ویو مثلا اگه خروجی 10 تا رکورد داشته باشه میشه 50 تا کنترل باید لود شن
که فکر نکنم منطقی باشه

بهترین راه همون لودی هست که در بالا گفته شده حیف که مشکل داریم برای استفاده

راه حل دیگری به ذهنتون نمی رسه دوستان ؟؟؟

amirsajjadi
سه شنبه 13 فروردین 1392, 12:37 عصر
کدهای درون pageload یوزرکنترل رو هم چک کنید نباید از شرط postback استفاده کرده باشید.
شما میتونید از multiview هم استفاده کنید که با هربار کلیک کردن یک view نمایش داده بشه

iranolom
سه شنبه 13 فروردین 1392, 21:06 عصر
کدهای درون pageload یوزرکنترل رو هم چک کنید نباید از شرط postback استفاده کرده باشید.

نه اصلا پیج لود نداره

در ضمن یعنی الان کار مالتی ویو چه جور میشه
میشه توش یه پلیس هولدر گذاشت بعد توش بدلخواه یه کنترل یوزر در زمان اجرا لود کرد و طی پستبک همچنان یوزر باقی بمونه ؟

در ضمن از گذاشتن وقتتون برا سوال سپاس فراوان:قلب:

amirsajjadi
چهارشنبه 14 فروردین 1392, 06:05 صبح
نه اصلا پیج لود نداره

در ضمن یعنی الان کار مالتی ویو چه جور میشه
میشه توش یه پلیس هولدر گذاشت بعد توش بدلخواه یه کنترل یوزر در زمان اجرا لود کرد و طی پستبک همچنان یوزر باقی بمونه ؟

در ضمن از گذاشتن وقتتون برا سوال سپاس فراوان:قلب:

شما دیگه نیازی نیست از placeholder استفاده کنید. توی view میتونید مستقیما usercontrol رو قرار بدید. در واقع drag & drop کنید.

iranolom
چهارشنبه 14 فروردین 1392, 10:21 صبح
اتفاقا همین کار رو انجام دادم و گفتم که ویزیبلشون رو فالس کردم

ولی اینطوری زیاد جالب نیست

اگه بشه بازم دارم رو اون فبلیه کار می کنم شاید حل شد

باید نکته ریز داشته باشه فکر کنم

meisam3322
چهارشنبه 14 فروردین 1392, 12:23 عصر
میتونی از کوکی ، یا سشن یا متغیر استفاده کنی. به این صورت که در زمان کلیک کاربر بر روی آیتمی از منو ، مقداری ذخیره بشه (در مواردی که ابتدا گفتم) ، حالا شما باید در رویداد load یا preload صفحه ، همیشه چک کنی که مقدار ذخیره شده چیه ، بر اساس اون usercontrol مربوطه رو لود کنی.

EnKamran
چهارشنبه 14 فروردین 1392, 17:51 عصر
if(!Page.IsPostBack)
{
// Load Control
}