آموزش 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 قدیمی
-
کنترل های سرور وب - تگ های جدید ASP.NET
-
کنترل های سرور صحت سنجی - برای صحت سنجی ورودی ها
کنترل های سرور 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 نمايش داده می شود.
مثال
<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>