آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

آموزش کنترل های سرور – ASP.NET

دوره های مرتبط با این مقاله

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


Control ها در واقع یکی از اجزای اصلی تشکیل دهنده رابط گرافیکی کاربری (graphical user interface) هستند، که شامل textboxها (کادر متن)، check boxها (کادر تیک)، buttonها (دکمه)، listboxها، label ها و چندین ابزار مختلف دیگر می شود. با استفاده از این ابزار، کاربر قادر خواهد بود داده های مورد نیاز را وارد کرده و انتخاب کند، همچنین تنظیمات دلخواه خود را اعمال کند.


Control ها برای اهداف دیگری نیز بکار گرفته می شوند که از میان آن ها می توان به اعتبار سنجی، دسترسی به داده، امنیت، ایجاد master pageها (صفحات الگو) و دستکاری داده اشاره کرد.


ASP.NET از پنج نوع مختلف web control (کنترل وب) بهره می گیرد که به شرح زیر می باشند :


  • HTML controls
  • HTML Server controls
  • ASP.NET Server controls
  • ASP.NET Ajax Server controls
  • User controls and custom controls

کنترل های سرور بیش از دیگر کنترل های ذکر شده در تکنولوژی ASP.NET کاربرد داشته و در واقع جزء کنترل های اولیه و اصلی آن می باشند. کنترل های سرور را می توان به ترتیب زیر گروه بندی کرد:


  • Validation controls – این کنترل ها به منظور اعتبار سنجی ورودی کاربر (user input) بکار گرفته شده و با اجرای اسکریپت های سمت سرویس گیرنده (client-side) کار می کنند.
  • Data source controls – این کنترل ها داده را به data source های متفاوتی متصل (bind) می کند.
  • Data view controls کنترل های نام برده در حقیقت listها (فهرست ها) و tableها (جداول) هستند که برای اینکه نمایش داده شوند از data source ها به داده متصل (bind) شوند.
  • Personalization controls این کنترل جهت شخصی سازی و تنظیم (personalization) صفحه مطابق با تنظیمات دلخواه کاربر و بر مبنای اطلاعات کاربر بکار گرفته می شود.
  • Login and security controls کنترل مذکور در واقع کاربر را احراز هویت می کند(authentication).
  • Master pages صفحات الگو یک layout (طرح کلی) و interface (رابط) همسان و یکپارچه ارائه می دهند که سرتاسر برنامه ی مورد نظر بکار فته می شود.

شماره
خاصیت
شرح
1
AccessKey
فشردن این کلید به همراه دکمه ی Alt باعث می شود که control مورد نظر انتخاب شود (focus به کنترل مورد نظر انتقال داده شود).
2
Attributes
مجموعه ای از خصیصه های (attribute) قراردادی که (فقط به منظور render یا اجرا کردن بکار گرفته شده) و با خواص (property) روی کنترل ارتباطی ندارد.
3
BackColor
رنگ پس زمینه (background color) را تعیین می کند.
4
BindingContainer
این خاصیت ارجاعی به Control object می دهد که دربردارنده ی اطلاعات مربوط به data binding (مقید سازی داده) کنترل جاری می باشد.
5
BorderColor
رنگ خط (Border color) حاشیه را تعیین می کند.
6
BorderStyle
استایل خط حاشیه (border style) را تعیین می کند.
7
BorderWidth
را تعیین می کند. (Border width) عرض خط حاشیه
8
CausesValidation
با استفاده از این خاصیت می توان تعیین کرد آیا پس از فشردن کنترل Button اعتبار سنجی (validation) برای کلاینت و سرور انجام گیرد یا خیر.
9
ChildControlCreated
نشانگر این است که آیا کنترل های فرزند server control ایجاد شده اند یا خیر.
10
ClientID
شناسه ی control را برای HTML markup (صفحه ی html یا صفحه ی نشانگذاری شده با html) برمی گرداند.
11
Context
این خاصیت امکان دسترسی به شئ HttpContext را برای web request جاری فراهم می کند / HttpContext object مربوط به کنترل سرور مورد نظر را برمی گرداند.
12
Controls
مجموعه تمامی کنترل های موجود در کنترل مورد نظر را برمی گرداند (get).
13
ControlStyle
Web server control را سبک دهی می کند. این خاصیت کلیه ی خواص کلاس webControl را که ظاهر کنترل را مشخص می کند را کپسوله سازی می کند.
14
CssClass
می توان با این خاصیت کلاس های CSS را به تگ های ASP اعمال کرد.
15
DataItemContainer
در صورتی که کلاس مذکور رابط (interface) IDataItemContainer را پیاده سازی کرده باشد، یک ارجاع به آن برمی گرداند.
16
DataKeysContainer
چنانچه کلاس مزبور interface (رابط) IDataKeysControl را پیاده سازی کرده باشد، یک ارجاع (reference) به آن را بازمی گرداند.
17
DesignMode
خاصیت designmode زمانی که برنامه نویس درحال اصلاح و ویرایش صفحه ی ASP.NET در محیط ویژوال استودیو است روی مقدار true تنظیم می شود.
18
DisabledCssClass
به کمک این خاصیت می توان اسمی که برای خاصیت DisabledCssClass تک تک وب کنترل ها render شده را تغییر داد. مقدار پیش فرض "aspNetDisabled" می باشد.
کلاس CSS را هنگامی که control غیر فعال شده است، به المان render شده ی HTML اعمال می کند.
19
Enabled
فعال یا غیر فعال بودن کنترل را مشخص می کند.
20
EnableTheming
این خاصیت نشان می دهد که آیا تم ها به کنترل مربوطه اعمال می شوند یا خیر.
21
EnableViewState
مقداری برگردانده یا تنظیم می کند که این مقدار مشخص می کند آیا کنترل سمت سرور view state خود و نیز کنترل های فرزندی که دربر می گیرد را حفظ (ماندگار ) کند یا خیر.
22
Events
لیست یا آرایه ای از delegate های event handler برای کنترل مورد نظر برمی گرداند.
این خاصیت از نوع EventHandlerList هست که با استفاده از آلگوریتم جستجو خطی (linear search algorithm) ورودی (entry) های مورد نظر را در فهرست delegate ها پیدا می کند.
23
Font
فونت یا قلم نوشته ی متنی که توسط کنترل نمایش داده می شود را تنظیم می کند.
24
Forecolor
با استفاده از این خاصیت می توان رنگ پس زمینه ی Web server control را تعیین کرد.
25
HasAttributes
مقداری برمی گرداند که نشان می دهد کنترل مورد نظر دارای مجموعه خصیصه ها (attribute set) هست یا خیر.
این خاصیت در صورتی که نمونه ی کلاس WebControl دارای key-value pair باشد، true برمی گرداند.
26
HasChildViewState
این خاصیت مقداری را برمی گرداند که این مقدار مشخص می کند آیا کنترل های فرزند server control جاری اطلاعات view state را ذخیره کرده اند یا خیر.
27
Height
ارتفاع (طول) کنترل را بر حسب پیکسل یا با درصد، گرفته و تنظیم می کند.
28
ID
شناسه ی برنامه ای (programmatic ID) تخصیص داده شده به کنترل سرور را تنظیم (get یا set) می کند.
29
IsChildControlStateCleared
مقداری بر می گرداند که این مقدار نشان می دهد آیا کنترل های موجود در کنترل مورد نظر دارای Control state هستند یا خیر
30
IsEnabled
مقداری می گیرد که این مقدار نشان می دهد کنترل در رابط کاربری فعال شده است یا خیر.
31
IsTrackingViewState
این خاصیت مقداری را بازمی گرداند و این مقدار نشان می دهد آیا کنترل سرور تغییرات را در view state خود ذخیره می کند یا خیر
32
IsViewStateEnabled
مقداری باز می گرداند که این مقدار تعیین می کند آیا view state برای این کنترل فعال سازی شده است یا خیر.
33
LoadViewStateById
این خاصیت مقداری را برمی گرداند که به وسیله ی آن تعیین می کند آیا کنترل مورد نظر view state خود را بجای اندیس (index) با شناسه (ID) بارگذاری کند یا خیر.
34
Page
Page containing the control.
ارجاعی (reference) به نمونه ی Page که میزبان (دربردارنده ی) کنترل سرور مورد نظر می باشد باز می گرداند.
35
Parent
Parent control.
ارجاعی به control پدر server control در سلسله مراتب page control برمی گرداند.
توضیح: هر زمان که صفحه ای درخواست می شود، در واقع سلسله مراتبی از کنترل های سرور بر روی آن صفحه ساخته می شود. این خاصیت به شما امکان می دهد کنترل پدر server control جاری را در آن سلسله مراتب پیدا کرده و مشخص کنید.
36
RenderingCompatibility
این خاصیت ویرایش یا نسخه ی ASP.NET که HTML اجرا شده با آن سازگار هست را مشخص می کند.
37
Site
اطلاعاتی را درباره ی ظرفی که میزبان کنترل کنونی به هنگام render شدن آن روی design surface می باشد، برمی گرداند.
خاصیت site یک شئ Component را به یک شئ container متصل کرده و امکان ارتباط بین این دو را فراهم می آورد. همچنین راهی برای مدیریت component ها توسط ظرف (container) مورد نظر ایجاد می کند.
38
SkinID
این خاصیت مشخص می کند کدام یک از Skin های موجود (skin های موجود در skin file ها که در پوشه ی theme قرار دارند)، به control مورد نظر اعمال شود.
39
Style
مجموعه ای از خصیصه های متن (text attribute) را که به عنوان خصیصه ی style بر روی تگ خارجی web server control اجرا شده و نمایش داده می شود، برمی گرداند. از این خاصیت به منظور مدیریت خصیصه های style که در تگ خارجی کنترل سرور وب render می شود، استفاده می شود.
40
TabIndex
ترتیب پیمایش (tab index) کنترل های سرور وب را در یک صفحه گرفته یا تنظیم می کند.
41
TagKey
مقدار HtmlTextWriterTag که مربوط به این web server control هست را برمی گرداند.
42
TagName
اسم المان html که در حال اجرا و نمایش (render) شدن است را گرفته یا تنظیم می کند.
43
TemplateControl
قالبی (template) که کنترل مورد نظر را دربردارد را برمی گرداند.
44
TemplateSourceDirectory
دایرکتوری (پوشه) مجازی صفحه یا کنترل دربردارنده ی control مورد نظر را بازمی گرداند. آدرس (مسیر) صفحه یا user control ی که دربردارنده ی کنترل جاری است را مشخص می کند.
45
ToolTip
متنی که هنگام قرار گرفتن مکان نمای موس روی کنترل سرور وب (web server control) نمایش داده می شود را گرفته یا تنظیم می کند.
46
UniqueID
Unique identifier.
شناسه ی منحصر بفرد که به صورت سلسله مراتبی برای server control تعریف شده اند را برمی گرداند.
47
ViewState
یک دیکشنری از اطلاعات stateهای مختلف که ViewState یک server side control را در بین request های یک صفحه یکسان ذخیره و بازیابی می کنند می گیرد.
یک دیکشنری از اطلاعات مربوط به وضعیت (state) که وضعیت view های یک کنترلگر سرور را سرتاسر چندین request برای یک صفحه ذخیره و بازیابی می کند را برمی گرداند.
48
ViewStateIgnoreCase
با استفاده از این خاصیت می توان مشخص کرد آیا شئ StateBag به کوچک و بزرگی حروف غیر حساس باشد یا خیر.
49
ViewStateMode
با بکارگیری این خاصیت می توان view state را برای کنترل ها به صورت تکی فعال کرد حتی اگرهم view state برای این صفحه غیر فعال شده باشد.
50
Visible
بیان گر اینکه آیا server control روی صفحه قابل رویت می باشد یا خیر.
51
Width
عرض web server control را مقداردهی (get یا set) می کند.

Navigation controls این کنترل ها در پیمایش کمک شایانی ارائه می دهند. از میان این کنترل ها می توان به منوها و نمایش درختی (tree view) اشاره کرد.


Rich controls ویژگی ها و امکانات فراوانی را ارائه می دهند، از جمله ی آن ها می توان از AdRotator، FileUpload و Calendar control سخن بمیان آورد.


ساختار نحوی (syntax) استفاده از کنترل های سرور به ترتیب زیر می باشد:


                            < asp:controlType  ID ="ControlID" runat="server" Property1=value1  [Property2=value2] / >
                        

Visual studio با ارائه ی ویژگی ها و امکانات زیر به کدنویسی هرچه صحیح تر و عاری از خطا کمک می کند:


  • کشیدن و جای گذاری (drag & drop) کنترل ها در design view
  • قابلیت IntelliSense که خاصیت ها (property) را نشان داده و به صورت خودکار تکمیل می کند
  • پنجره ی properties که امکان تنظیم مقادیر property را به صورت مستقیم فراهم می کند

پنجره ی properties که امکان تنظیم مقادیر property را به صورت مستقیم فراهم می کند


خواص server control


کنترل های سرور ASP.NET از کلاس WebControl مشتق شده و همچنین تمامی خاصیت ها، رخدادها و متدهای این کلاس را به ارث می برد.


خود کلاس WebControl و برخی دیگر از server control هایی که به صورت بصری اجرا نشده و نمایش داده نمی شوند (render) در واقع از کلاس System.Web.UI.Control مشتق می شوند، به عنوان نمونه می توان PlaceHolder control و XML control را نام برد.


Server control های ASP.NET کلیه ی خواص (property)، رخدادها (events) و متدهای کلاس WebControl و System.Web.UI.Control را به ارث می برد.


جدولی که زیر مشاهده می کنید این خواص به ارث گرفته شده که بین کنترل های سرور مشترک می باشد را به نمایش می گذارد :


شماره
Method
Description
1
AddAttributesToRender
خصیصه ها و سبک های (attributes و styles) html که باید اجرا شده و نمایش داده شود (render) را به HtmlTextWriterTag اضافه می کند.
2
AddedControl
این تابع پس از اینکه کنترل فرزند به مجموعه کنترل های (control collection) شئ control اضافه شد، فراخوانی می شود.
3
AddParsedSubObject
این تابع به کنترل سرور اطلاع می دهد که یک المان XML / HTML parse شده و سپس المان مزبور را به مجموعه کنترل های (control collection) server control اضافه می کند.
4
ApplyStyleSheetSkin
خواص (property های) style تعریف شده در page style sheet (صفحه ی سبک دهی) را به کنترل مورد نظر اعمال می کند.
5
ClearCachedClientID
این API (رابط برنامه سازی کاربردی) از زیر ساخت .NET Framework پشتیبانی می کند. توجه داشته باشید که نباید آن را مستقیماً از کد خود اجرا کنید.
این تابع مقدار ClientID به صورت موقت ذخیره (cache) شده را روی NULL تنظیم می کند(مقدار null را به آن تخصیص می دهد).
6
ClearChildControlState
اطلاعات control-state کنترل های فرزند server control را پاک می کند.
این متد زمانی بکار می رود که اطلاعات control-state فرزند که در control state کنترل پدر نوشته شده با ایجاد کنترل های فرزند جدید بازنویسی (override) می شوند.
7
ClearChildState
اطلاعات view-state و control-state تمامی کنترل های فرزند server control را حذف می کند.
8
ClearChildViewState
اطلاعات view-state کلیه ی کنترل های فرزند server control را پاک می کند.
9
CreateChildControls
از این تابع به منظور ایجاد کنترل های فرزند استفاده می شود.
10
CreateControlCollection
یک شئ ControlCollection جدید ایجاد می کند که کنترل های فرزند را در خود نگه می دارد(دربرمی گیرد).
11
Context
این خاصیت امکان دسترسی به شئ HttpContext را برای web request جاری فراهم می کند / HttpContext object مربوط به کنترل سرور مورد نظر را برمی گرداند.
12
CreateControlStyle
این متد یک شئ style ایجاد می کند که به منظور پیاده سازی تمامی خواص مر بوط به style بکار گرفته می شود.
13
DataBind
یک منبع داده (data source) را به کنترل سرور و تمامی کنترل های فرزند آن متصل می کند.
14
DataBind(Boolean)
یک منبع داده (data source) را به کنترل سرور و کلیه ی کنترل های فرزند آن البته به شرط اینکه که event DataBinding اجرا شود متصل می کند.
15
DataBindChildren
منبع داده (data source) را به کنترل های فرزند server control متصل می کند.
16
Dispose
این متد را زمانی باید فراخوانی کنید که دیگر به control نیازی ندارید. این متد در واقع control را در وضعیت غیر قابل استفاده (unusable state) رها می کند. پس از صدا زدن این متد باید تمامی ارجاعات به کنترل مربوط را آزاد کنید تا از این طریق حافظه ی اشغال شده توسط زباله روب (garbage collection) بازگرفته و احیاء شود.
17
EnsureChildControls
مشخص می کند آیا سرور کنترل، کنترل فرزند دربرگیرد یا خیر.
این متد اول مقدار خاصیت ChildControlsCreated را چک می کند، چنانچه این مقدار false بود در آن صورت متد CreateChildControls صدا زده می شود.
18
EnsureID
این متد شناسه ای برای کنترل هایی که دارای identifier نیستند ایجاد می کند.
19
Equals(Object)
بررسی می کند آیا شئ مشخص شده با شئ جاری یکسان و برابر است یا خیر.
20
Finalize
به یک شئ امکان می دهد منابع (resource) را آزاد ساخته و به دیگر عملیات پاک سازی (cleanup) پیش از اینکه شئ مذکور توسط garbage collection بازگرفته (احیاء) شود، بپردارد.
21
FindControl(String)
این تابع به منظور دسترسی به کنترلی که شناسه ی آن در زمان design مشخص نیست استفاده می شود.
22
FindControl(String, Int32)
بسیاری از اوقات id کنترل ها از قبل مشخص نیست و در زمان اجرا id ها مشخص می شوند مثال زمانی که دکمه ها در grid قرار می گیرند. با استفاده از این متد می توان به این کنترل ها دسترسی داشت.
23
Focus
Focus را برای یک کنترل انجام می دهد. Focus فرایندی است که در آن یک کنترل انتخاب می شود (keyboard cursor) روی آن قرار می گیرد.
24
GetDesignModeState
اطلاعات زمان طراحی یک کنترل را بازیابی می کند.
25
GetType
نوع نمونه (instance) جاری را برمی گرداند.
26
HasControls
مشخص می کند آیا کنترل سرور دربردارنده ی کنترل های فرزند (child control) هست یا خیر.
27
HasEvents
مشخص می کند آیا رخدادهایی ویژه ی کنترل مورد نظر یا کنترل های فرزند (child control) ثبت (register) می شوند یا خیر.
28
IsLiteralContent
مشخص می کند آیا کنترل سرور فقط دربردارنده ی literal content ( محتویات متنی) هست یا خیر.
29
LoadControlState
اطلاعات control-state را بازیابی می کند.
30
LoadViewState
اطلاعات view-state را بازیابی می کند.
31
MapPathSecure
مسیر فیزیکی (physical path) که یک مسیر مجازی (virtual) به آن نگاشت می شود را بازیابی می کند.
32
MemberwiseClone
یک shallow copy از شئ جاری ایجاد می کند.
Shallow copy :
در فرایند shallow copying، B تمامی مقادیر فیلد (field value) A را کپی می کند. اگر مقدار فیلد یک آدرس حافظه باشد، تنها آدرس حافظه را دانلود می کند و اگر مقدار فیلد یک نوع اولیه (primitive type) باشد در آن صورت مقدار نوع اولیه را کپی می کند.
33
OnBubbleEvent
تعیین می کند آیا رخداد کنترل سرور به سمت parent control (کنترل والد یا دربرگیرنده) صفحه فرستاده شود یا خیر.
34
OnDataBinding
رخداد DataBinding را فعال می کند.
35
OnInit
رخداد Init را فعال می کند.
36
OnLoad
رخداد Load را فعال می کند.
37
OnPreRender
رخداد PreRender را فعال می کند.
38
OnUnload
رخداد Unload را اجرا می کند.
39
OpenFile
این متد یک شئ stream برمی گرداند که می توان از آن ها برای خواندن محتوا (content) فایل مشخص شده در پارامتر path استفاده کرد.
40
RemovedControl
این تابع پس از اینکه کنترل فرزند از مجموعه کنترل های (control collection) control object حذف گردد صدا زده می شود.
41
Render
محتویات کنترل را به یک writer اعمال می نماید.
42
RenderBeginTag
تگ آغازین حاصله از render شدن کنترل را به writer ارسال می نماید.
43
RenderChildren
محتویات کنترل های فرزند (child control) از یک کنترل را به writer انتقال می دهد.
44
RenderContents
محتویات یک کنترل را به یک writer اعمال می نماید.
45
RenderControl(HtmlTextWriter)
خروجی (نتیجه ی render شدن) یک کنترل را به html text writer ارسال می کند.
46
RenderEndTag
در کنترل writer (به عنوان مثال html text writer) تگ انتهایی یک تگ را درج می نماید.
47
SaveControlState
کلیه ی تغییرات اعمال شده در control state را در زمان post back بازیابی می نماید.
48
SaveViewState
تغییرات view stateی ر ا که بعد از آخرین فراخوانی متد TrackViewState اعمال شده است را ذخیره می نماید.
49
SetDesignModeState
تنظیم کننده ی اطلاعات زمان طراحی برای control می باشد.
50
ToString
شئ جاری را به صورت رشته برمی گرداند.
51
TrackViewState
با true نمودن این خصیصه تغییرات property های کنترل در view state اعمال می شوند.
مثال :

اکنون نگاهی به تنها یکی از کنترل server-side فوق می اندازیم که یک کنترل نمایش درختی (control tree view) می باشد. یک کنترل tree view در واقع زیر کنترل های پیمایش (navigation control) نمایش داده می شود. کنترل های پیمایش عبارتند از: کنترل Menu و کنترل SiteMapPath.


یک کنترل tree view در صفحه ایجاد کنید. اکنون Edit Nodes... را از میان task ها انتخاب کنید. هر یک از گره ها (node) را همان گونه که تصویر زیر نمایش می دهد با استفاده از Tree view node editor ویرایش کنید.


پس از ایجاد گره ها (node)، کنترل نمایش درختی (در design view) به صورت زیر در خواهد آمد:


task AutoFormat... به شما امکان می دهد tree view را به صورتی که تصویر زیر نمایش می دهد قالب بندی (format دهی) کنید:


یک label control و textbox control به صفحه اضافه کرده و آن ها را به ترتیب lblmessage و txtmessage نام گذاری کنید.


اکنون کدهای لازم را می نویسید تا زمانی که روی یک گره ی (node) معین کلیک شد، کنترل label متن node را نشان دهد و text boxنیز تمامی گره های فرزند (child node) را در خود به نمایش بگذارد.


Code behind :


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 ServerControl
{
    public partial class WebForm1 : 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;
                }
            }
        }
 
    }
}
                        

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



  • 3967
  •    1726
  • تاریخ ارسال :   1394/07/27

دانلود PDF دانلود سورس کد دانشجویان گرامی اگر این مطلب برای شما مفید بود لطفا ما را در GooglePlus محبوب کنید
رمز عبور: tahlildadeh.com یا www.tahlildadeh.com
ارسال دیدگاه نظرات کاربران
شماره موبایل دیدگاه
عنوان پست الکترونیک

ارسال

آموزشگاه برنامه نویسی تحلیل داده
آموزشگاه برنامه نویسی تحلیل داده

تمامی حقوق این سایت متعلق به آموزشگاه تحلیل داده می باشد .