روزنوشتهای من درباره اینترنت، کامپیوتر، سایبراسپیس و ...!

بازگشت به صفحه اصلی وبلاگ

 
 

June 20, 2006

 
 
 

چگونه در ASP.NET صفحات را شبيه به هم بسازيم؟

يکی از ملاک‌های يک سايت حرفه‌ای اينه که تمام صفحات سايت از اين قالب واحد پيروی کنن و هر صفحه‌ای شکلی متفاوت نداشته باشه.

در ASP.NET چيزی وجود داره به اسم User Control که به ما اين امکان را می‌ده که کدها رو بنويسم و طراحی‌های خودمون رو يک بار توش انجام بديم و بعد هر جا و هر چند بار که لازم بود ازش استفاده کنيم.

ما می‌تونيم برای اينکه طراحی‌ همه صفحات شکل هم باشن طراحی بخش بالايی صفحه رو توی يک User Control و طراحی بخش پايينی را توی يک User Control ديگه قرار بديم و داخل همه صفحات از اون‌ها استفاده کنيم. به اين صورت طراحی همه صفحات عينا شبيه هم می‌شن و در صورتی که بخواهيد طراحی صفحه رو عوض کنيد فقط کافيه اون دو تا رو عوض کنيد تا همه صفحات عوض بشن.

فايل‌های User Cntrolها پسوند ASCX دارن. برای ايجاد User Control توی پنل Solution Explorer روی اسم پروژه راست کليک کنيد از منو Add گزينه Add Web User Control… رو انتخاب کنيد.

اينجا می‌خوايم طرح بالا را برای برای پروژه‌ای که در دفعات قبل ساختيم استفاده کنيم.

کد HTML صفحه بالا با اين صورت است:

<table border="1" width="100%">
    <tr>
        <td bgcolor="#FFFF00" align="center">
            <h1>عنوان سايت</h1>
        </td>
    </tr>
    <tr>
        <td bgcolor="#FFFF00" align="center">صفحه اول - درباره
        ما -محصولات - تماس با ما</td>
    </tr>
    <tr>
        <td height="200px">

به سايت ما خوش‌‌آمديد. اينجا متن اصلی هر صفحه
قرار می‌گيرد و در هر صفحه‌ای اين بخش عوض خواهد شد.


        </td>
    </tr>
    <tr>
        <td bgcolor="#00FF00" align="center">کليه حقوق محفوظ است</td>
    </tr>
</table>

ما دو تا User Control برای بخش بالايی و پايينی ايجاد می‌کنيم و از اون‌ها توی صفحه استفاده می‌کنيم. بخش بالای کد (بالای «به سايت ما خوش‌آمديد») توی يه User Control و بخش پايينی سايت (پايين «عوض خواهد شد») توی يه User Control ديگه قرار می‌گيره.

توی پنل Solution Explorer روی اسم پروژه راست کليک کنيد و از منو Add زير منو Add Web User Control… رو انتخاب کنيد. توی پنجره‌ای که باز می‌شه نام Header رو تايپ کنيد. به بخش بالايی سايت معمولا Header می‌گن به همين خاطر ما اين اسم رو برای اين User Control انتخاب می‌کنيم.

User Control که باز شد توی بخش HTML بريد و کدهای بخش بالايی رو اضافه کنيد:

<table border="1" width="100%" dir="rtl">
    <tr>
        <td bgcolor="#FFFF00" align="center">
            <h1>عنوان سايت</h1>
        </td>
    </tr>
    <tr>
        <td bgcolor="#FFFF00" align="center">صفحه اول - درباره
        ما -محصولات - تماس با ما</td>
    </tr>
    <tr>
        <td height="200px">

(يادتون هست که برای ذخيره صفحات فارسی چيکار بايد می‌کرديم!؟) ما مجبور نيستيم اينجا کدها رو مستقيما وارد کنيم و می‌تونيم در صورت تمايل در بخش Design هم طراحی خودمون رو انجام بديم. بخش بالا می‌تونه حتی فقط شامل عنوان سايت باشه.

يک User Control ديگه به نام Footer به ترتيبی که گفتم ايجاد کنيد و کدهای بخش پايينی صفحه رو بهش اضافه کنيد:

        </td>
    </tr>
    <tr>
        <td bgcolor="#00FF00" align="center">کليه حقوق محفوظ است</td>
    </tr>
</table>

خب حالا ما طراحی صفحات رو داريم و فقط بايد از اون‌های توی صفحات خودمون استفاده کنيم. فايل Default.aspx رو باز کنيد و از توی Solution Explorer کنترل‌های Header و Footer را به داخل صفحه بکشيد:

بعد از اجرای پروژه صفحه شما به اين صورت خواهد بود:

در ASP.NET 2.0 مورد جديدی اضافه شده به نام Master Page که کار طراحی صفحه رو خيلی راحتر می‌کنه. ما می‌تونيم داخل Master Page بالا و پايين صفحه و کلا همه طراحی رو انجام بديم و جای قرار گرفتن نوشته‌های صفحه رو تعيين کنيم. برای استفاده از طراحی فقط کافيه مشخص کنيم هر صفحه از چه Master Pageای استفاده کنه.

حالا می‌تونيد چندتا صفحه جديد درست کنيم و از User Control های خودتون داخل اون‌ها هم استفاده کنيم. می‌خوايم دو تا از لينک‌های بالا رو درست کنيم.

اول صفحه درباره ما رو می‌سازيم. توی Solution Explorer روی اسم پروژه راست کليک کنيد و از منو Add زيرمنو Add Web Form… رو انتخاب کنيد. اسم صفحه جديد رو AboutUs بذاريد. بعد همون طوری که قبلا توضيح دادم Layout صفحه رو FlowLayout بذاريد و بخش‌های Header و Foter رو به اون صفحه اضافه کنيد.

حالا لينک‌های بالا رو درست می‌کنيم. اگه User Control بخش بالايی (Header) باز نيست، بازش کنيد. داخل بخش Design بريد و متن «صفحه اول» رو انتخاب کنيد. بعد دکمه‌های Ctrl+L رو بزنيد و اسم فايل مربوط به صفحه اول رو وارد کنيد:

همين‌کار رو برای «درباره ما» هم تکرار کنيد و به صفحه AboutUs.aspx لينکش کنيد. پروژه رو اجرا کنيد. حالا تقريبا سايتی داريم که شبيه به يه سايت واقعی به نظر می‌رسه!


 
 

 

نظرات دیگران:

 

 

sani

June 20, 2006 11:05 AM

 
 

mersi navid jan

 

 

هاله

June 20, 2006 03:22 PM

 
 

عالی نوید جان و خسته نباشی.

 

 

ادریس

June 22, 2006 08:28 AM

 
 

سلام
ممنون از آموزش خوبتون
خیلی عالی و قابل فهم توضیح میدین
بی صبرانه منتظر شروع کدنویسی هستم ( البته ممنون میشم اگه vb یادتون نره )
موفق باشید

 

 

سید منصور

June 22, 2006 08:54 AM

 
 

با سلام خدمت حضرتعالی
از اینکه وقتتان را برای خواندن این نامه اختصاص می دهید بسیار تشکر می کنم . قرض از مزاحمت اوین است که بنده در یک پروژه ASP.Net به مشکلی برخورده ام که اگر این حقیر را راهنمایی بفرمایید لطف بزرگی کرده اید که امیدوارم بتوانم آن را جبران نمایم .
در این پروژه بنا به درخواست سفارش دهنده می باید برای سایت یک کنترل پنل مشابه به کنترل پنل های موجود در وبلاگها طراحی نمایم تا افراد فاقد تخصص در زمینه طراحی سایت نیز بتوانند به راحتی اطلاعات موجود در کلیه صفحات سایت را ویرایش و به روز رسانی نمایند . من برای این کار تصمیم گرفتم از بانک اطلاعاتی استفاده نمایم و در صفحه کنترل پنل هم از ادیتوری با نام tiny mce استفاده کردم که این ادیتور از نوع جاوا اسکریپت می باشد . هدفم این بود تا اطلاعات را در این ادیتور وارد و ویرایش نمایم و سپس آن را در بانک ذخیره و در صفحه مورد نطز آن اطلاعات نمایش داده شود . اما در این کار با مشکلات زیادی از جمله ذخیره نشدن اطلاعات وارد شده در ادیتور در بانک به علت تغییر اندازه متن ، وجود تصویر در متن و یا تغییر رنگ متن روبه رو شدم که این امر نیز کار من را تقریباً به بن بست رسانده است . لذا از حضرتعالی تقاضا دارم در این مورد مرا راهنمایی نمایید و اگر راه بهتر و کامل تری در این رابطه مد نظر شماست به نیز بنده را راهنمایی نمایید . ضمناً می خواستم بدانم سایتی مانند پرشین بلاگ برای این کار از چه روشی استفاده نموده است .
باز هم از اینکه وقتتان را صرف خواندن این نامه نمودید کمال تشکر را دارم .
منتظر جواب شما هستم .
با تشکر
سید منصور نصیری
Mansoor66289@yahoo.com

 

 

taleshi

July 16, 2006 06:31 PM

 
 

سلام ، کار خیلی قشنگی رو شروع کردید، اون هم هنگامی که برای search فارسی ASP.NET با# c هیچ مطلبی پیدا نمی شه، آیا شما منبع فارسی می توانید به من معرفی کنید که شامل این موضوع باشه؟

 

 

baroon

July 19, 2006 09:49 AM

 
 

سلام و واقعا خسته نباشید! آیا ممکن است شما به بنده و دوستم تدریس به صورت خصوصی مطالب را آموزش دهید؟

 

 

علی رضا

July 26, 2006 09:58 AM

 
 

من که با تو خیلی حال می کنم دمت گرم

 

 

نازنین

August 7, 2006 10:42 PM

 
 

سلام. وبلاگ آموزشی مفیدی دارید.
من در کار با asp.net , پایگاه داده مشکل دارم.
چطور می تونم از شما کمک بگیرم؟؟؟

 

 

 
 

 

استفاده از مطالب این وبلاگ فقط با اجازه نویسنده آن مجاز می باشد

Design: © Mojtaba Dashtinejad