آموزش WebForm-کنترل ها

چاپ

کنترل های سرور، تگ هایی هستند که توسط سرور قابل درک هستند.


محدودیت های ASP کلاسیک

لیست زیر، کپی کدهای آموزش قبلی است:

<html>
<body bgcolor="yellow">
<center>
<h2>Hello Beyamooz!</h2>
<p><%Response.Write(now())%></p>
</center>
</body>
</html>

کد بالا محدودیت ASP کلاسیک را نشان می دهد: بلوک کد بایستی جایی قرار گیرد که خروجی قرار است نمایش داده شود.

در ASP كلاسیك جدا سازی کدهای اجرایی از HTML امكان پذیر نیست. این خوانایی صفحات و نگهداری آن ها را دشوار می سازد.


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

ASP.NET مشكل "spaghetti-code" كه در بالا شرح داده شد را با کنترل های سرور برطرف نموده است.

کنترل های سرور تگ هایی هستند که توسط سرور قابل درک هستند.

سه نوع کنترل سرور وجود دارد:


 کنترل های سرور HTML

کنترل های سرور HTML تگ های HTML ی هستند که به وسیله سرور قابل درک هستند.

عناصر HTML در ASP.NET به صورت پیشفرض، به عنوان متن در نظر گرفته می شوند. برای اینکه این عناصر را بتوان به صورت کدهای اجرایی در آورد، باید ویژگی " runat="server را به عنصر HTML اضافه كرد. این ویژگی مشخص می کند که عنصر باید به عنوان یک کنترل سرور در نظر گرفته شود.

ویژگی id برای مشخص كردن کنترل سرور به آن اضافه می شود. ارجاع به id می تواند برای مدیریت و دستکاری کنترل در زمان اجرا استفاده شود.

نکته: تمام کنترل های سرور باید داخل یک تگ <form> با ویژگی runat="server" محصور باشند. ویژگی runat="server" نشان می دهد که فرم بایستی سمت سرور پردازش گردد. این فرم همچنین نشان می دهد که کنترل های محصور در آن می تواند توسط اسکریپت های سمت سرور دستیابی شوند.

در مثال زیر کنترل سرور HtmlAnchor در یك فایل aspx. تعریف شده است. بنابراین ما ویژگی Href از كنترل HtmlAnchor را در یک مدیریت رویداد دستکاری می کنیم (مدیریت رویداد تکه کدی است که برای یک رویداد اجرا می گردد). رویداد Page_Load یكی از رویدادهایی است که ASP.NET می شناسد:

<script runat="server">
Sub Page_Load
link1.HRef="http://www.Beyamooz.com"
End Sub
</script>

<html>
<body>

<form runat="server">
<a id="link1" runat="server">Visit Beyamooz!</a>
</form>

</body>
</html>

کد قابل اجرا بنابراین به خارج از HTML انتقال یافت.


كنترل های سرور وب ASP.NET

كنترل های سرور وب تگ های مخصوصی هستند که توسط سرور قابل درک هستند.

مانند کنترل های سرور HTM، کنترل های سرور وب نیز، به ویژگی runat="server" نیاز دارند تا سمت سرور کار کنند. با این وجود، کنترل های سرور وب لزوما به یک عنصر HTML موجود نگاشت نمی شوند و ممکن است اطلاعات پیچیده تری را نشان دهند.

گرامر ایجاد کنترل سرور وب عبارت است از:

<asp:control_name id="some_id" runat="server" />

در مثال زیر ابتدا یک دکمه را در یک فایل aspx. ایجاد کرده ایم. سپس یک مدیریت رویداد کلیک، برای تغییر دادن متن دکمه ایجاد کرده ایم:

<script runat="server">
Sub submit(Source As Object, e As EventArgs)
button1.Text="You clicked me!"
End Sub
</script>

<html>
<body>

<form runat="server">
<asp:Button id="button1" Text="Click me!"
runat="server" OnClick="submit"/>
</form>

</body>
</html>

کنترلهای صحت سنجی ASP.NET

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

هر کنترل صحت سنجی نوع خاصی از صحت سنجی را به کار می گیرد (مانند صحت سنجی برای یک مقدار خاص یا محدوده ای از مقادیر).

به طور پیش فرض، صحت سنجی وقتی که روی یک دکمه، دکمه تصویری، یا دکمه لینکی کلیک شد، اجرا می گردد. شما می توانید هنگامی که یک کنترل دکمه کلیک شد با تنظیم ویژگی CauseValidation به مقدار false، از اجرای صحت سنجی ممانعت کنید.

گرامر ایجاد کنترل سرور صحت سنجی به صورت زیر است:

<asp:control_name id="some_id" runat="server" />

در مثال زیر یک کنترل TextBox، یک کنترل دکمه (Button) وی یك كنترل RangeValidator، در یک فایل aspx. تعریف کرده ایم. اگر صحت سنجی مردود شود، متن "مقدار باید بین 1 تا 100 باشد" در کنترل RangeValidator نمایش داده می شود.

مثال (آموزش WebForm-کنترل ها)

<html>
<body>

<form runat="server">
<p>Enter a number from 1 to 100:
<asp:TextBox id="tbox1" runat="server" />
<br /><br />
<asp:Button Text="Submit" runat="server" />
</p>

<p>
<asp:RangeValidator
ControlToValidate="tbox1"
MinimumValue="1"
MaximumValue="100"
Type="Integer"
Text="مقدار باید بین 1 تا 100 باشد"
runat="server" />
</p>
</form>

</body>
</html>