ASP.NET - کنترل های سرور

کنترل‌ها بلوک‌های کوچکی از رابط کاربری گرافیکی هستند که شامل جعبه‌های متن، دکمه‌ها، جعبه‌های چک، جعبه‌های فهرست، برچسب‌ها و ابزارهای متعدد دیگر می‌شوند. با استفاده از این ابزار، کاربران می توانند داده ها را وارد کنند، انتخاب کنند و ترجیحات خود را نشان دهند.کنترل ها همچنین برای کارهای ساختاری مانند اعتبارسنجی، دسترسی به داده ها، امنیت، ایجاد صفحات اصلی و دستکاری داده ها استفاده می شوند.ASP.NET از پنج نوع کنترل وب استفاده می کند که عبارتند از:کنترل های HTMLکنترل های سرور HTMLکنترل های سرور ASP.NETکنترل های ASP.NET Ajax Serverکنترل های کاربر و کنترل های سفارشیکنترل های سرور ASP.NET کنترل های اولیه ای هستند که در ASP.NET استفاده می شوند. این کنترل ها را می توان به دسته های زیر دسته بندی کرد:کنترل‌های اعتبارسنجی - برای تأیید ورودی کاربر استفاده می‌شوند و با اجرای اسکریپت سمت سرویس گیرنده کار می‌کنند.کنترل های منبع داده - این کنترل ها اتصال داده ها را به منابع داده های مختلف فراهم می کند.کنترل‌های نمای داده - اینها فهرست‌ها و جداول مختلفی هستند که می‌توانند برای نمایش به داده‌های منابع داده متصل شوند.کنترل‌های شخصی‌سازی - برای شخصی‌سازی صفحه با توجه به تنظیمات کاربر، بر اساس اطلاعات کاربر استفاده می‌شود.ورود و کنترل های امنیتی - این کنترل ها احراز هویت کاربر را فراهم می کنند.صفحات اصلی - این کنترل ها چیدمان و رابط کاربری ثابتی را در سراسر برنامه ارائه می دهند.کنترل های ناوبری - این کنترل ها به ناوبری کمک می کنند. به عنوان مثال، منوها، نمای درختی و غیره.کنترل های غنی - این کنترل ها ویژگی های خاصی را اجرا می کنند. به عنوان مثال، کنترل AdRotator، FileUpload و Calendar.نحو استفاده از کنترل های سرور به صورت زیر است:<asp:controlType ID ="ControlID" runat="server" Property1=value1 [Property2=value2] />علاوه بر این، ویژوال استودیو دارای ویژگی های زیر است که به تولید کدنویسی بدون خطا کمک می کند:کشیدن و رها کردن کنترل ها در نمای طراحیویژگی IntelliSense که ویژگی ها را نمایش می دهد و به طور خودکار تکمیل می کندپنجره خواص برای تنظیم مستقیم مقادیر ویژگیویژگی های کنترل های سرورکنترل های سرور ASP.NET با جنبه بصری از کلاس WebControl مشتق شده اند و تمام ویژگی ها، رویدادها و متدهای این کلاس را به ارث می برند.خود کلاس WebControl و برخی دیگر از کنترل های سرور که به صورت بصری ارائه نمی شوند از کلاس System.Web.UI.Control مشتق شده اند. به عنوان مثال، کنترل مکان یا کنترل XML.کنترل های سرور ASP.Net تمام ویژگی ها، رویدادها و متدهای کلاس WebControl و System.Web.UI.Control را به ارث می برند.جدول زیر ویژگی های ارثی را نشان می دهد که در همه کنترل های سرور مشترک است:توضیحات ملکAccessKey با فشار دادن این کلید با کلید Alt، تمرکز به کنترل منتقل می شود.ویژگی ها مجموعه ای از ویژگی های دلخواه (فقط برای رندر) است که با ویژگی های کنترل مطابقت ندارد.رنگ پس زمینه رنگ پس زمینه.BindingContainer کنترلی که شامل اتصال داده این کنترل است.BorderColor رنگ حاشیه.BorderStyle سبک حاشیه.BorderWidth عرض حاشیه.CausesValidation نشان می دهد که آیا باعث اعتبار سنجی می شود.ChildControlCreated نشان می دهد که آیا کنترل های فرزند کنترل سرور ایجاد شده اند یا خیر.شناسه کنترل ClientID برای نشانه گذاری HTML.Context شی HttpContext مرتبط با کنترل سرور.کنترل ها مجموعه ای از تمام کنترل های موجود در کنترل.ControlStyle سبک کنترل وب سرور.کلاس CSS کلاس CSSاگر کانتینر نامگذاری IDataItemContainer را پیاده سازی کند، DataItemContainer به محفظه نامگذاری ارجاع می یابد.اگر ظرف نامگذاری IDataKeysControl را پیاده سازی کند، DataKeysContainer به محفظه نامگذاری ارجاع می دهد.DesignMode نشان می دهد که آیا کنترل روی سطح طراحی استفاده می شود یا خیر.DisabledCssClass کلاس CSS را می‌گیرد یا تنظیم می‌کند تا وقتی کنترل غیرفعال است، به عنصر HTML ارائه‌شده اعمال شود.Enabled نشان می دهد که آیا کنترل خاکستری است یا خیر.EnableTheming نشان می دهد که آیا طرح زمینه برای کنترل اعمال می شود یا خیر.EnableViewState نشان می دهد که آیا وضعیت نمایش کنترل حفظ می شود یا خیر.رویدادها لیستی از نمایندگان کنترل کننده رویداد را برای کنترل دریافت می کند.فونت فونت.رنگ پیش زمینه.HasAttributes نشان می دهد که آیا کنترل دارای صفات مجموعه ای است یا خیر.HasChildViewState نشان می دهد که آیا کنترل های فرزند کنترل سرور فعلی دارای تنظیمات حالت نمایش ذخیره شده هستند یا خیر.ارتفاع ارتفاع بر حسب پیکسل یا درصد.شناسه شناسه برای کنترلIsChildControlStateCleared نشان می دهد که آیا کنترل های موجود در این کنترل دارای حالت کنترل هستند یا خیر.IsEnabled مقداری را دریافت می کند که نشان می دهد آیا کنترل فعال است یا خیر.IsTrackingViewState نشان می دهد که آیا کنترل سرور تغییرات را در حالت نمایش خود ذخیره می کند یا خیر.IsViewStateEnabled نشان می دهد که آیا حالت view برای این کنترل فعال است یا خیر.LoadViewStateById نشان می دهد که آیا کنترل در بارگیری حالت نمایش خود به جای فهرست، توسط ID شرکت می کند یا خیر.صفحه صفحه حاوی کنترل.کنترل والدین.RenderingCompatibility نسخه ASP.NET را مشخص می کند که HTML رندر شده با آن سازگار باشد.Site محفظه ای که میزبان کنترل جاری در هنگام رندر شدن روی سطح طراحی است.SkinID پوست را برای اعمال روی کنترل می گیرد یا تنظیم می کند.Style مجموعه ای از ویژگی های متنی را دریافت می کند که به عنوان یک ویژگی سبک در تگ بیرونی کنترل وب سرور ارائه می شود.TabIndex فهرست برگه کنترل سرور وب را دریافت یا تنظیم می کند.TagKey مقدار HtmlTextWriterTag را دریافت می کند که مربوط به این کنترل وب سرور است.TagName نام تگ کنترل را دریافت می کند.TemplateControl الگویی که حاوی این کنترل است.TemplateSourceDirectory دایرکتوری مجازی صفحه یا کنترل حاوی این کنترل را دریافت می کند.ToolTip زمانی که نشانگر ماوس روی کنترل وب سرور قرار می گیرد، متن نمایش داده شده را دریافت یا تنظیم می کند.UniqueID شناسه منحصر به فرد.ViewState یک فرهنگ لغت از اطلاعات وضعیت دریافت می کند که وضعیت نمایش یک کنترل سرور را در چندین درخواست برای یک صفحه ذخیره و بازیابی می کند.ViewStateIgnoreCase نشان می دهد که آیا شی StateBag به حروف بزرگ و کوچک حساس نیست یا خیر.ViewStateMode حالت view-state این کنترل را دریافت یا تنظیم می کند.قابل مشاهده این نشان می دهد که آیا کنترل سرور قابل مشاهده است یا خیر.Width عرض کنترل سرور وب را دریافت یا تنظیم می کند.روش های کنترل سرورجدول زیر روش های کنترل سرور را نشان می دهد:شرح روشAddAttributesToRender ویژگی ها و سبک های HTML را اضافه می کند که باید به HtmlTextWriterTag مشخص شده ارائه شوند.AddedControl پس از افزودن یک کنترل فرزند به مجموعه Controls شیء کنترل فراخوانی می شود.AddParsedSubObject به کنترل سرور اطلاع می دهد که یک عنصر، اعم از XML یا HTML، تجزیه شده است، و عنصر را به مجموعه کنترل کنترل سرور اضافه می کند.ApplyStyleSheetSkin ویژگی های سبک تعریف شده در شیوه نامه صفحه را به کنترل اعمال می کند.زیرساخت ClearCachedClientID. مقدار کش شده ClientID را روی null قرار می دهد.ClearChildControlState اطلاعات کنترل وضعیت کنترل های فرزند کنترل سرور را حذف می کند.ClearChildState اطلاعات view-state و control-state را برای تمام کنترل های فرزند کنترل سرور حذف می کند.ClearChildViewState اطلاعات حالت نمایش را برای تمام کنترل های فرزند کنترل سرور حذف می کند.CreateChildControls در ایجاد کنترل های فرزند استفاده می شود.CreateControlCollection یک شی ControlCollection جدید برای نگه داشتن کنترل های فرزند ایجاد می کند.CreateControlStyle شی style را ایجاد می کند که برای پیاده سازی تمام ویژگی های مربوط به سبک استفاده می شود.DataBind یک منبع داده را به کنترل سرور و تمام کنترل های فرزند آن متصل می کند.DataBind(Boolean) یک منبع داده را به کنترل سرور و تمام کنترل های فرزند آن با گزینه ای برای افزایش رویداد DataBinding متصل می کند.DataBindChildren یک منبع داده را به کنترل های فرزند کنترل سرور متصل می کند.Dipose کنترل سرور را قادر می سازد تا پاکسازی نهایی را قبل از رها شدن از حافظه انجام دهد.EnsureChildControls تعیین می کند که آیا کنترل سرور شامل کنترل های فرزند است یا خیر. اگر اینطور نباشد، کنترل های فرزند ایجاد می کند.EnsureID برای کنترل هایی که شناسه ندارند یک شناسه ایجاد می کند.Equals(Object) تعیین می کند که آیا شی مشخص شده با شی فعلی برابر است یا خیر.Finalize به یک شی اجازه می دهد تا قبل از بازیابی شی توسط جمع آوری زباله، منابع را آزاد کند و سایر عملیات پاکسازی را انجام دهد.FindControl(String) محفظه نامگذاری فعلی را برای کنترل سرور با پارامتر id مشخص شده جستجو می کند.FindControl(String, Int32) محفظه نامگذاری فعلی را برای کنترل سرور با شناسه مشخص شده و یک عدد صحیح جستجو می کند.فوکوس فوکوس ورودی را روی یک کنترل تنظیم می کند.GetDesignModeState داده های زمان طراحی را برای یک کنترل دریافت می کند.GetType نوع نمونه فعلی را دریافت می کند.GetUniqueIDRelativeTo قسمت پیشوندی از ویژگی UniqueID کنترل مشخص شده را برمی گرداند.HasControls تعیین می کند که آیا کنترل سرور حاوی کنترل های فرزند است یا خیر.HasEvents نشان می دهد که آیا رویدادها برای کنترل یا هر کنترل فرزند ثبت شده است.IsLiteralContent تعیین می کند که آیا کنترل سرور فقط محتوای تحت اللفظی را نگه می دارد.LoadControlState اطلاعات کنترل وضعیت را بازیابی می کند.LoadViewState اطلاعات view-state را بازیابی می کند.MapPathSecure مسیر فیزیکی را بازیابی می کند که یک مسیر مجازی، مطلق یا نسبی، به آن نگاشت می شود.MemberwiseClone یک کپی کم عمق از شی فعلی ایجاد می کند.MergeStyle هر عنصر غیر خالی سبک مشخص شده را در کنترل وب کپی می کند، اما هیچ عنصر سبک موجود کنترل را بازنویسی نمی کند.OnBubbleEvent تعیین می کند که آیا رویداد برای کنترل سرور به سلسله مراتب کنترل سرور UI صفحه منتقل می شود یا خیر.OnDataBinding رویداد اتصال داده را افزایش می دهد.OnInit رویداد Init را افزایش می دهد. رویداد Load را افزایش می دهد.OnPreRender رویداد PreRender را افزایش می دهد. رویداد Unload را افزایش می دهد.OpenFile یک جریان برای خواندن یک فایل استفاده می کند.RemovedControl پس از حذف یک کنترل فرزند از مجموعه کنترل های شی کنترل فراخوانی می شود.Render کنترل را به نویسنده HTML مشخص شده ارائه می کند.RenderBeginTag تگ افتتاحیه HTML کنترل را به نویسنده مشخص شده ارائه می کند.RenderChildren محتویات فرزندان کنترل سرور را به یک شی HtmlTextWriter ارائه شده، که محتویاتی را که قرار است بر روی کلاینت ارائه می شود می نویسد، خروجی می دهد.RenderContents محتویات کنترل را به نویسنده مشخص شده ارائه می کند.RenderControl(HtmlTextWriter) محتوای کنترل سرور را به یک شیء ارائه شده HtmlTextWriter خروجی می دهد و در صورت فعال بودن ردیابی، اطلاعات ردیابی کنترل را ذخیره می کند.RenderEndTag تگ بسته شدن HTML کنترل را در رایتر مشخص شده ارائه می کند.ResolveAdapter آداپتور کنترل را مسئول ارائه کنترل مشخص شده می‌گیرد.SaveControlState هرگونه تغییر وضعیت کنترل سرور را که از زمان ارسال مجدد صفحه به سرور رخ داده است ذخیره می کند.SaveViewState هر حالتی را که پس از فراخوانی متد TrackViewState اصلاح شده است را ذخیره می کند.SetDesignModeState داده های زمان طراحی را برای یک کنترل تنظیم می کند.ToString رشته ای را برمی گرداند که نشان دهنده شی فعلی است.TrackViewState باعث می شود که کنترل تغییرات در حالت view خود را ردیابی کند تا بتوان آنها را در ویژگی حالت view شی ذخیره کرد.مثالاجازه دهید به یک کنترل سرور خاص نگاه کنیم - یک کنترل نمای درختی. یک کنترل نمای درختی تحت کنترل های ناوبری قرار می گیرد. سایر کنترل های ناوبری عبارتند از: کنترل منو و SiteMaهنگامی که گره ها را ایجاد کردید، در نمای طراحی مانند زیر به نظر می رسد:وظیفه AutoFormat... به شما امکان می دهد نمای درختی را مطابق شکل قالب بندی کنید:یک کنترل برچسب و یک کنترل جعبه متنی را به صفحه اضافه کنید و آنها را به ترتیب lblmessage و txtmessage نامگذاری کنید.چند خط کد بنویسید تا مطمئن شوید که وقتی یک گره خاص انتخاب می‌شود، کنترل برچسب متن گره را نمایش می‌دهد و جعبه متن تمام گره‌های فرزند را در صورت وجود نشان می‌دهد. کد پشت فایل باید به شکل زیر باشد:using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq; namespace eventdemo { public partial class treeviewdemo : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { txtmessage.Text = " "; } protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e) { txtmessage.Text = " "; lblmessage.Text = "Selected node changed to: " + TreeView1.SelectedNode.Text; TreeNodeCollection childnodes = TreeView1.SelectedNode.ChildNodes; if(childnodes != null) { txtmessage.Text = " "; foreach (TreeNode t in childnodes) { txtmessage.Text += t.Value; } } } }}برای دیدن افکت ها صفحه را اجرا کنید. شما می توانید گره ها را گسترش داده و جمع کنید.