Tag Mapping در Asp.NET

جمعه 15 آبان 1394

حالتی را در نظر بگیرید که به یکی از کنترل های ASP.NET ویژگی خاصی که مورد نظر خودتان است و در برنامه به آن نیاز دارید می افزایید.در این مقاله راجع به این امکان و نحوه استفاده از Tag Mapping صحبت خواهیم کرد.

Tag Mapping در Asp.NET

در این مقاله راجع به   Tag Mappingصحبت خواهیم کرد.حالتی را در نظر بگیرید که به یکی از کنترل های ASP.NET  ویژگی خاصی که مورد نظر خودتان است و در برنامه به آن نیاز دارید می افزایید.در این مقاله راجع به این امکان و نحوه استفاده از Tag Mapping صحبت خواهیم کرد.

افزودن یک امکان جدید به کنترلر می تواند به صورتی باشد که از اساس آن کنترلر تغییر کند و به شکل جدیدی که تغییر داده اید در آید و یا اینکه می توان این تغییرات جدید را هر جا که مورد نیاز بود استفاده کردو کل ماهیت کنترلر را تغییر نداد.نام این کار Tag Mapping است .اینکه تغییراتی را در هر کنترل سمت سروری که مایل هستید ایجاد کنیدو هر جا که مایل بودید این تغییرات را در برنامه استفاده کنید.

روش ساده ای برای Tag Mapping وجود دارد .به این صورت که ابتدا کلاسی (Class) که قرار است تغییرات را صورت دهد تعریف کنید این کلاس از کنترل پایه مشتق (Inherit)خواهد شد.درون این کلاس ویژگی های کلاس پایه را بازنویسی می کنیم .

ابتدا کلاسی به نام CustomTextBox تعریف می کنیم .این کلاس از کلاس Text Box ارث بری می کند.در این کلاس ویژگی BackColor  را بازنویسی می کنیم و هر رنگی که دوست داریم به آن نسبت می دهیم .

ویژگی دیگری که تمایل داریم در کنترل TextBox تغییر دهیم ویژگی Text می باشد.


public class CustomTextBox : System.Web.UI.WebControls.TextBox
{
    public CustomTextBox()
    {
           //
           // TODO: Add constructor logic here
           //
    }
    public override System.Drawing.Color BackColor
    {
        get
        {           
            return base.BackColor;
        }
        set
        {
            base.BackColor = System.Drawing.Color.LimeGreen;
        }
    }
    public override string Text
    {
        get
        {
            return base.Text;
        }
        set
        {
            base.Text = "Write Whatever it will not change";
        }
    }   
}

پس از تعریف این کلاس در web.config تغییرات زیر را اعمال می کنیم .

<pages>
<tagMapping>
       <add tagType="System.Web.UI.WebControls.TextBox" mappedTagType="CustomTextBox" />
</tagMapping>
</pages>

حال به راحتی می توانیم از این کلاس استفاده کنیم .در قسمت code behind در رویداد مربوط به دکمه کدهای زیر را می نویسیم .با این کار پس از فشار دادن این دکمه متن TextBox تغییر می کند و رنگ پس زمینه آن به رنگ قرمز در می آید.


 

protected void Button1_Click(object sender, EventArgs e)
{
    TextBox1.BackColor = System.Drawing.Color.Red;
    TextBox1.Text = "Hello World";
}

پس از اجرای برنامه تغییرات به صورت زیر خواهد بود

 

فایل های ضمیمه

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید