درک کنترل کاربر در ASP.net

دوشنبه 28 دی 1394

کنترل کاربر یا User Control چیزی جز کد قابل اجرایی که می تواند مورد استفاده مجدد قرار گیرد نیست ، درست مانند یک کنترل server . هنگامی که یک کنترل کاربر ایجاد میکنید می توانید آن را در صفحات مختلف ASP.net استفاده کنید. در زمان اضافه کردن آن به صفحه ، مانند اضافه کردن یک کنترل خارجی به نظر می آید اما این کنترل بخشی از صفحه می باشد.

 درک کنترل کاربر در  ASP.net

کنترل کاربر یا User Control چیزی جز کد قابل اجرایی که می تواند مورد استفاده مجدد قرار گیرد نیست . هنگامی که یک کنترل کاربر ایجاد میکنید می توانید آن را در صفحات مختلف  ASP.net  استفاده کنید. در زمان اضافه کردن آن به صفحه ، مانند اضافه کردن یک کنترل خارجی به نظر می آید اما این کنترل بخشی از صفحه می باشد. اساسا بخشی از صفحات منظم است و می توان آن را در صفحات متعدد گنجاند . 

درست مانند یک کنترل  Server  است اما گروهی از کنترل های چندگانه در یک فریم است . مزیت اصلی آن  cacheable  بودن است بدان معنی که می توانید تمام صفحه همچنین فقط داده های کنترل کاربر را بسته به نیاز ، cache کنید.

پس User Control یا کنترل کاربر ترکیبی از چندین کنترل  server  و اجرای بعضی وظایف خاص است و می تواند توسط چندین صفحه استفاده شود.

برای درک بهتر یک برنامه ایجاد خواهیم کرد.

یک  برنامه  ASP  ایجاد کرده و نام آن را UserControlDemo قرار دهید.

 

در پنجره جدیدی که باز می شود  Webform  را انتخاب کنید.

 

در پروژه ایجاد شده یک پوشه با نام  UserControl ایجاد کنید. و بر روی آن راست کلیک کرده و قسمت New Item  را کلیک کنید.

از این پنجره به قسمت  Web سپس  Web form  رفته و گزینه  Web Forms User Control  را انتخاب کرده و نام آن را  CalculatorUserControl قرار دهید.

 

CalculatorUserControl در پوشه  UserControl  ایجاد خواهد شد.

برای اصلاح کنترل کاربر و ایجاد یک ماشین حساب ساده ، کد خود را در صفحه  CalculatorUserControl.ascx به صورت زیر اصلاح کنید.

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="CalculatorUserControl.ascx.cs" Inherits="UserControlDemo2.UserControl.CalculatorUserControl" %>
 <div style="border:5px solid red; padding:5px;">  
        <table>  
            <tr>  
                <td colspan="2"><h4>ماشین حساب ساده</h4>  
                </td>  
            </tr>  
            <tr>  
                <td>عدد اول را وارد نمایید  :  
                </td>  
                <td>  
                    <asp:TextBox runat="server" ID="txtFirstNumber"></asp:TextBox>  
                    <asp:RequiredFieldValidator runat="server" ID="reqFirstNumber" ErrorMessage="Required" ForeColor="Red" ControlToValidate="txtFirstNumber"></asp:RequiredFieldValidator>  
                </td>  
            </tr>  
            <tr>  
                <td>عدد دوم را وارد نمایید:  
                </td>  
                <td>  
                    <asp:TextBox runat="server" ID="txtSecondNumber"></asp:TextBox>  
                    <asp:RequiredFieldValidator runat="server" ID="reqSecondNumber" ErrorMessage="Required" ForeColor="Red" ControlToValidate="txtSecondNumber"></asp:RequiredFieldValidator>  
                </td>  
            </tr>  
            <tr>  
                <td style="align-content:center">  
                    <asp:Button runat="server" ID="btnAdd" Text="جمع" OnClick="btnAdd_Click" />  
  
                </td>  
                <td>نتیجه :  
                    <asp:Label runat="server" ID="lblResult" ForeColor="Green"></asp:Label>  
                </td>  
  
            </tr>  
        </table>  
    </div>  

 

سپس کدها در صفحه  CalculatorUserControl.ascx.cs را به صورت زیر تغییر دهید :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace UserControlDemo2.UserControl
{
    public partial class CalculatorUserControl : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {
            int num1 = Convert.ToInt32(txtFirstNumber.Text);
            int num2 = Convert.ToInt32(txtSecondNumber.Text);
            int result = num1 + num2;
            lblResult.Text = result.ToString();
        }  
    }
}

 

اکنون برای استفاده از آن در صفحات دیگر باید کنترل کاربر خود را در  header  صفحه برای دسترسی به آن ثبت کنید. در اینجا در صفحه  default  این کنترل را بکار خواهیم برد. برای این کار به تعریف  TagPrefix ،  TagName  و  Src  نیاز داریم  .

TagPrefix

راهی برای نگهداری چندین کنترل کاربر با نام مشابه است. در واقع گروهی را فراهم میکند که می توانید کنترل کاربر خود را با این برچسب پیشوندی تعریف کنید. اساسا یک فضای نام که کنترل های مختلف در گروه مشابه اضافه می شوند.

TagName

به کنترل کاربر اشاره دارد . درواقع درون هر TagPrefix لازم است نام یکتایی برای هر کنترل کاربر فراهم شود. بنابراین TagName  نام منحصر بفردی برای UserControl شما است.

برای مثال :

    <asp:TextBox runat="server" ID="txtSecondNumber"></asp:TextBox>   

درون TagPrefix یک textbox  برای tagname  وجود دارد.

 

Src

یک مسیر از کنترل کاربر است . منبع مسیر  User Control  است.

    Src="~/UserControl/CalculatorUserControl.ascx"  

 

 

برای ثبت  User Control  به صورت زیر عمل میکنیم.

    <%@ Register TagPrefix="usc" TagName="Calculator" Src="~/UserControl/CalculatorUserControl.ascx" %>  

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

    <div>  
        <usc:Calculator runat="server" ID="userControlCalculator" />  
    </div>  

 

در design صفحه کنترل را به صورت زیر مشاهده میکنید.

  برنامه را اجرا کنید . اعداد را وارد کرده و کلید جمع را کلیک کنید ، نتیجه را در lable مشاهده خواهید کرد. این کنترل را می توانید در هر صفحه ای از پروزه خود استفاده کنید.

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

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

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

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

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