من می خوام با انتخاب منو usercontrol مربوط به همان منوی انتخابی در صفحه مثلا Default.aspx باز شود چه کار کنم مثلا در DotNetNuke چطور این کار را کرده
من می خوام با انتخاب منو usercontrol مربوط به همان منوی انتخابی در صفحه مثلا Default.aspx باز شود چه کار کنم مثلا در DotNetNuke چطور این کار را کرده
یه Place Holder تو صفحه ات بذار و از کد زیر استفاده کن:
myPlaceHolder.Controls.Add(LoadControl("~/UCs/myControl.ascx"))
سلام
مشکلی که این دستور داره اینه که در زمان اجرا وقتی روی button ای که روی فرم لود شده کلیک کنی ( یعنی یک رویدادی اجرا بشه) این کنترل غیب میشه یا بهتر بگم محو میشه.
چطوری از این کار جلوگیری کنیم؟
کاملا درسته ؟؟؟ الان مشکل خود من هم هست ؟؟کسی پاسخی نداره ؟؟؟مشکلی که این دستور داره اینه که در زمان اجرا وقتی روی button ای که روی فرم لود شده کلیک کنی ( یعنی یک رویدادی اجرا بشه) این کنترل غیب میشه یا بهتر بگم محو میشه.
چطوری از این کار جلوگیری کنیم؟
با سلام مجدد و تشکر از امیر سجاد عزیز
در حالت پیش فرض که true هست بازم گفتم که شاید فرقی بکنه نوشتم مقدارش رو هم true دادم خروجی گرفتم کنترل بعد از کلکی شدن یه دکنه از تو یوزر کلا حذف میشهشما اگه enableviewstate یوزرکنترل رو false کنید بعد از اولین postback اطلاعاتش پاک میشه.
اینم که کاملا درسته و صحیح //الان مشکلمون تو بالا همینه دیگه چون نمی خوام تو لد بزارم کدموالبته این مشکل اینطوری حل میشه که توی formload دستور loadcontrol رو استفاده کنید که هربار postback اتفاق میافته دوباره دستور loadcontrol اجرا بشه و نمونه ای از کنترل ایجاد بشه.
چند تا یوزر کنترل دارم قرار نیست همه شون لود بشن
چند تا دکمه هست رو هر کدوم کلیک بشه اون یوزر لود میشه و مقدارش رو می تونن تغییر بدن بعد هم رو دکمه کلیک بشه که بعد از کلکی رو دکمه دیگه اون کنترل یوزر لود نمی شه
تازه اینا همه شون تو اپدیت پنل قرار دارن
الان تنها راهیی که به ذهنم رسیده اینه که همه شون رو لود کنم خاصیت visible شون رو false کنم بعد رو هر دکمه ای کلیک شد بیام ویزیبله اون یوزر مربوطه رو ترو کنم
البته تعداد این یوزر ها زیاد میشه مثلا 5 تا هست ولی تو خروجی لیست ویو مثلا اگه خروجی 10 تا رکورد داشته باشه میشه 50 تا کنترل باید لود شن
که فکر نکنم منطقی باشه
بهترین راه همون لودی هست که در بالا گفته شده حیف که مشکل داریم برای استفاده
راه حل دیگری به ذهنتون نمی رسه دوستان ؟؟؟
کدهای درون pageload یوزرکنترل رو هم چک کنید نباید از شرط postback استفاده کرده باشید.
شما میتونید از multiview هم استفاده کنید که با هربار کلیک کردن یک view نمایش داده بشه
نه اصلا پیج لود ندارهکدهای درون pageload یوزرکنترل رو هم چک کنید نباید از شرط postback استفاده کرده باشید.
در ضمن یعنی الان کار مالتی ویو چه جور میشه
میشه توش یه پلیس هولدر گذاشت بعد توش بدلخواه یه کنترل یوزر در زمان اجرا لود کرد و طی پستبک همچنان یوزر باقی بمونه ؟
در ضمن از گذاشتن وقتتون برا سوال سپاس فراوان
اتفاقا همین کار رو انجام دادم و گفتم که ویزیبلشون رو فالس کردم
ولی اینطوری زیاد جالب نیست
اگه بشه بازم دارم رو اون فبلیه کار می کنم شاید حل شد
باید نکته ریز داشته باشه فکر کنم
میتونی از کوکی ، یا سشن یا متغیر استفاده کنی. به این صورت که در زمان کلیک کاربر بر روی آیتمی از منو ، مقداری ذخیره بشه (در مواردی که ابتدا گفتم) ، حالا شما باید در رویداد load یا preload صفحه ، همیشه چک کنی که مقدار ذخیره شده چیه ، بر اساس اون usercontrol مربوطه رو لود کنی.
if(!Page.IsPostBack)
{
// Load Control
}