PDA

View Full Version : سوال: نحوه ايجاد قالب ديناميك



HamidTatalo
دوشنبه 04 بهمن 1389, 00:15 صبح
سلام دوستان
من يه سايت فروشگاه كار كردم ولي توي طراحي قالب مشكل دارم .
من براي هر قسمت از سايت يه USER Control ايجاد كردم و اينارو توي صفحه Master Page خودم چيدم . ولي مشكل من اينجاست كه دوست دارم اين بخش هاي مختلف امكان تعيين وضعيت توسط مدير سايت رو داشته باشه . يعني مدير سايت بتونه مثلا ليست محصولات پرفروش رو كه در كنار و سمت چپ قرار دادم رو خودش تغيير بده . مثلا به سمت راست يا پايين ببره و حتي ترتيب قرارگيري رو هم مشخص بكنه . :گریه:

majnun
دوشنبه 04 بهمن 1389, 06:33 صبح
میتونی کدهای مسترپیج را از درون بانک بخونی و ترتیبش را هم درست کنی ، باید کار کنی دیگه

مثلا میتونی همین یوزرگنترل هارا موقع لود صفحه به صفحه اضافه کنی ...

raziee
دوشنبه 04 بهمن 1389, 10:07 صبح
majnun تا حدودی درست گفتند.
شما در Master Page قالب کلی رو قرار بده.
یعنی قالبی رو طراحی کن که دارای قسمت های زیادی باشه. مثل Header,Footer,,....
اگه اسم این قسمت ها رو Pane بگذاریم، شما دارای Pane های زیادی در صفحه هستید. این Pane ها در مکان های خاصی قرار داده شده اند
شما میتونید UserControl هاتون رو که من اینجا بهشون Module میگم رو هر کدوم از این Pane ها قرار بدید.
یعنی این امکان رو در اختیار کاربر قرار بدید که محل قرار گیری این ماژول ها رو مشخص کند.
علاوه بر این شما میتونید هر ماژول رو با یک ظاهر گرافیکی درون این Pane ها Load کنید.
اگه این ظاهر گرافیکی رو Container بنامیم ، شما دارای:
1 : MasterPage
2: Pane
3: Container
4: Module خواهید بود.

alonemm
دوشنبه 04 بهمن 1389, 21:04 عصر
سلام دوست من:
البته روشهاي بالا براي كار شما خوبه.
و در انتها شما ميتونيد كدها فايل MasterPage رو هم ويرايش كنيد توسط يك اديتور متن و قالب رو تغيير بديد.
و يا ور‍ژن هاي مختلف بسازيد و يا قالب هاي مختلف و يك جدول ديگه داشته باشيد كه اسم قالب سايت از اون خونده بشه.

HamidTatalo
دوشنبه 04 بهمن 1389, 22:31 عصر
دوستان عزيز من يادم رفت :اشتباه: كه بگم حالت كلي رو مي دونم كه بصورت Paneها و Moduleها خواهد بود .
مشكل من توي نحوه كدنويسي هستش كه چطور بايد توي كدنويسي پياده سازي بشه
اگه يكي از دوستان يه مثال بزنه خيلي خيلي ممنون مي شم:افسرده:

raziee
دوشنبه 04 بهمن 1389, 23:56 عصر
دوستان عزيز من يادم رفت كه بگم حالت كلي رو مي دونم كه بصورت Paneها و Moduleها خواهد بود .
مشكل من توي نحوه كدنويسي هستش كه چطور بايد توي كدنويسي پياده سازي بشه
ببینید دوست من منظور از Pane در واقع یک کنترل هست مثلا یک Literal و یا PlaceHolder.
کنترل های دات نت این امکان رو دارند که درونشون یک کنترل دیگه اضافه بشه.

void RegisterContainer(string paneName, Control module)
{
if (FindControl(paneName) != null)
FindControl(paneName).Controls.Add(module);
else
this.Controls.Add(module);
}
و برای ثبت اون ماژول:

UserControl module = (UserControl)LoadControl("UserControlPath");
RegisterContainer("ContentPane", module);