ورود

View Full Version : آموزش: نحوه ساختن Template در ASP.NET



actros
پنج شنبه 21 بهمن 1389, 05:37 صبح
تو مقالات گشتم اثری از این مقاله ندیدم گفتم بذارم شاید به درد کسی بخوره



تا حالا شده BasePage داشته باشید که توش کد مربوط به چند زبانه کردن رو نوشته باشید یا هر کد دیگه ای که بخواهید ما بقی صفحات به ارثش ببرید و تمام صفحات بعدی تو Code Behind به جای System.Web.UI.Page کلاس BasePage اتون رو به ارث برده باشه ونیازی نباشه خودتون دستی کد رو عوض کنید؟

یا کارایی از این قبیل؟

راه حل ساخت یک Template(الگو) که صفحاتمون رو براساسش بسازیم.


ساخت Template خیلی ساده و به قول خودشون Really Straightforward ئه. کافیه یه صفحه جدید با نام دلخواه بسازید(در اینجا Temporary.aspx مثلا).Master Page دلخواه تونم انتخاب کنید تا در حین انتخاب Template نیازی به انتخابMasterPage نباشه.

F7 رو زده تا وارد Code Behind (به قول یه مترجمی " پشت صحنه ") بشید.کد رو تغییر بدید تا به چنین چیزی برسید:


VB.NET
Pertial Class

Partial Class $relurlnamespace$_$safeitemname$
Inherits BasePage ...
End Class


C#
public partial class $relurlnamespace$_$safeitemname$ : BasePage
{
...
}




در C# به کد page_load و using ها کاری نداشته باشید. اینم بگم BasePage اسم کلاس دلخواه منه.
در ضمن نگران Compile error تولید شده نباشیدIt’s okey

حالا به Markup View و خاصیّت Inherit رو مطابق کد زیر در بیارید:


<%@ Page Title=”“ Language=”C#” MasterPageFile=”~/Site.master” AutoEventWireup=”true” CodeFile=”Temporary.aspx.cs” Inherits=”$relurlnamespace$_$safeitemname$” %>تغییرات رو ذخیره و مسیر File --> Export Templateرو برید.تو پنجره باز شده گزینه Item template و زبان برنامه نویسی رو انتخاب کنید و Next رو بزنید :



http://up.iranblog.com/images/ryf40vfqpl1n5wpgo6ai.png
فایل Temporary.aspx رو انتخاب کنید و Next رو بزنید:


http://up.iranblog.com/images/9dvhw4121lllms6ri5w.png


تو پنجره ظاهر شده نیازی نیست dll ئی رو رفرنس بدین.Next رو بزنید.

تو این پنجره یه نام دلخواه و کمی توضیح در مورد Template تتون بدید.یا اگه خواستید آیکانی براش در نظر بگیرید ( برای نام نمی تونید از کاراکتر # استفاده کنید : دی)

http://up.iranblog.com/images/wsp25da6nn0v0l39ppna.png

همونطور که می بینید یه پنجره حاوی .zip الگو شما براتون ساخته شده که می تونین همه جا ازش استفاده کنید.(حتّی برای استفاده دیگران تو وب بذارید.)

خوب دیگه به صفحهTemporary.aspx احتیاجی ندارید.با خیال آسوده پاکش کنید.

به VS بر گردید و CTRL+SHIFT+Aرو بزنید تا منوی افزودن آیتم جدید باز شه. همونطور که در تصویر می بینید ، الگوی شما به گزینه های موجود اضافه شده و It’s ready to use :

http://up.iranblog.com/images/1ol4p5vlb4w9b0lt0v82.png

همونطور که می بینید چون صفحه Temporary دارای MasterPage بود در اینجا گزینه انتخاب MasterPage غیر فعّال شده. بذارید یه صفحه باهاش بسازیم ببنیم چه خبره. این از Markup View

http://up.iranblog.com/images/j1kimn779ygq8f1ws.png

اینم از Code Behind :

http://up.iranblog.com/images/y23nug0kzhsidj4knr68.png

البته اگه کلاسی با نام BasePage نداشته باشید مسلمه که به error بر خواهید خورد.یه کلاس با این نام بسازید.

اجازه بدید یه صفحه تو یه فولدر بسازیم .برای مثال فولدر Managment

http://up.iranblog.com/images/jkw5g15dtbn3wu6agq5i.png


http://up.iranblog.com/images/mt6angrfqcr019fsxybn.png

اسم فولدر قبل از نام صفحه اومده.این نوع رفتار ناشی از این کده : $relurlnamespace$_$safeitemname$

برای اطلاعات بیشتر سری به اینجا (http://social.msdn.microsoft.com/Search/en-US?query=%24safeitemname%24&ac=8) بزنید.

PDF این پست رو می تونید از اینجا (http://www.mediafire.com/?gcfot9bv1r9rrzn)و Template آماده (VB و #C رو از اینجا (http://www.mediafire.com/?05jqcmii0lzz0iz)بگیرید)


هر گونه استفاده و کپی برداری از این مقاله آزاده : دی

اگه مشکلی حین ساخت Template داشتید بگید تا بررسی کنم :لبخندساده:

منبع :
hadimvc.mihanblog.com