تبلیغات
آموزشASP.NET - کنترل های موجود در فرم های وب
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 

کنترل هایی که در یک فرم وب استفاده می شوند با آنهایی که در فرم های معمولی ویندوز مورد استفاده قرار می گیرند تفاوت دارد. چهار نوع کنترل برای استفاده در فرم وب وجود دارد:

• HTML Server Control
• ASP.NET Server Control
• Validation Control
• User Control

قبل از اینکه نگاهی به این کنترل ها داشته باشیم بهتر است مفهوم Server-Side Control را مشخص کنیم.

مفهوم Server-Side Control
مانند ASP کلاسیک می توانید کدهای ASP را با %> و <% از HTML جدا کنید. با استفاده از این تگ ها شما باید تمامی اطلاعاتی را که کدهای HTML و دیگر کدهای ASP لازم دارند را به درستی تهیه کنید. برای مثال فرض کنید یک فرم با یک جعبه متن و یک کلید وجود دارد. همچنین فرض کنید وقتی کلید زده شود مقدار جعبه متن بدون تغییر دوباره نوشته شود. از nm برای نام جعبه متن استفاده کردیم. همانطور که می بینید شما به عنوان برنامه نویس باید متن مورد نظر را در جعبه متن قرار دهید. این کار را بوسیله استفاده از آبجکت Request و استفاده از خاصیت value از جعبه متن انجام دادید. وقتی برای اولین بار این صفحه دیده می شود جعبه متن خالی است ، اما هنگامی که کاربر نامی را تایپ کرد و بر بروی کلید کلیک کرد ، نام تایپ شده در جعبه متن آورده می شود.

در فرم های وب ، مایکروسافت مفهوم جدیدی را ایجاد کرده است که مسئول نگه داشتن مقادیر صفحه ها به شکل خودکار می باشد و دیگر احتیاجی به استفاده از کدهای اضافه برای این کار نیست. در فرم وب می توانید بگویید که کدام کنترل وقتی که کاربر کلید submit را فشار داد به صورت خودکار مقدار خود را نگه دارد. این کار بوسیله خاصیت runat="server" در کنترل ها و فرم ها اجرا می شود. متن زیر با استفاده از runat="server" و کمی تغییرات دیگر مشکل برنامه بالا را حل می کند:

<HTML>
<HEAD>
<title>Untitled</title>
</HEAD>
<BODY>
<Form Action="testform.aspx" runat="server">
What is your name ?
<asp:textbox name="nm"
value="" size="40"
MAXLength="40" runat="Server"/><br>
<input Type="submit" Name="cmd" Value=" Submit ">
</FORM>
</BODY>
</HTML>

کد بالا را با پسوند aspx ذخیره کنید تا ASP.NET آن را اجرا کند. بدون اینکه کد اضافی نوشته باشیم صفحه حالت قبلی خود را حفظ می کند. تغییراتی که این کد با مورد مشابه در ASP کلاسیک دارد در درجه اول در خود پسوند aspx است. تفاوت بعدی در تگ فرم است که خود از خاصیت =server استفاده می کند. این خاصیت به ASP.NET می گوید که باید کارهای اضافه تری نسبت به یک فرم معمولی انجام دهد. این کار بوسیله یک فیلد مخفی که به فرم اضافه می شود انجام خواهد شد.

اگر کد HTML حاصل اجرای برنامه فوق را در مرورگر خود ببینید مشاهده خواهید کرد که در قسمت form یک ID و Name اضافه شده ، همچنین فیلد مخفی با نام __VIEWSTATE برای ذخیره مقدار کنترل روی فرم اضافه شده است.

HTML Server Control
HTML Server Control
اجزایی هستند که بوسیله خاصیت runat="server" متمایز می شوند. در ویژوال استودیو دات نت اینگونه کنترل ها در قسمت فرم وب در جعبه ابزار (Toolbox) قرار دارند. کنترل های معمولی HTML در بخش HTML در جعبه ابزار هستند. کنترل های HTML Server مشابه مدل کلاسیک خود هستند به غیر از اینکه خاصیت runat="server" دارند و می توان برای آنها در فرم وب برنامه نوشت.

HTML Server Control کنترل هایی هستند که معمولا ً استفاده زیادی در صفحه های HTML دارند مانند CheckBox , ListBox , TextBox , Table , Form و غیره. هر کدام از این کنترل ها که قبلا ً تعریف شده اند دارای خواص عمومی و طبعا ً خواص مخصوص به خود هستند.

در محیط ویژوال استودیو دات نت برای قرار دادن یک کنترل HTML معمولی بر روی فرم کافی است آن را از جعبه ابزار انتخاب کرده و بر روی فرم قرار دهید. در حالت عادی کنترل های HTML ِ معمولی حالت runat="server" ندارند ، برای اینکه آنها دارای این خاصیت بشوند می توان از پنجره Design و با زدن کلید سمت راست موس بر روی آن کنترل و انتخاب Run As Server Control ، این کنترل را به کنترل ِ سروری ارتقا داد.

کنترل های HTML در دات نت از کلاس System.Web.UI.HTMLControls مشتق می شوند. با تبدیل یک کنترل HTML معمولی به HTML Server Control می توانیم اعمال زیر را به راحتی برای کنترل جدید انجام دهیم:

نوشتن کد برای رویدادهایی که بر روی فرم وب اتفاق می افتند در حالتی که این کدها در سرور اجرا می شوند ، مانند رویداد کلیک که برای کلید اتفاق می افتد.
نوشتن کد برای رویدادهایی که بر روی فرم وب اتفاق می افتند در حالی که این کدها در client اجرا می شوند مانند حرکت موس.
نگه داری حالت قبلی کنترل بدون نیاز به نوشتن کد اضافی.

HTML Server Control ها به این دلیل وجود دارند تا با برنامه های ASP کلاسیک سازگاری وجود داشته باشد. آنها کمک می کنند تا برنامه های ASP کلاسیک خیلی راحت به ASP.NET ارتقا یابند. در هر حال تمام کارهایی که با HTML Server Control می توان انجام داد را با ASP.NET Server Control نیز می توان انجام داد.

ASP.NET Server Controls
HTML Server Control
فقط در محدوده کنترل های معمولی HTML هستند و تقریبا ً هیچ خاصیت اضافی برای کنترل وضعیت خود در برنامه نویسی ندارند. اما ASP.NET Server Controls امکانات بسیار زیادی دارند ، نمونه آنها تقویم بود که قبلا ً مثال آن دیده شد.

VB.NET دارای حدود بیست کنترل ASP.NET Server است که از حالت ساده ای مانند TextBox شروع می شود و تا حالتهای پیشرفته مثل DataGrid ادامه می یابد. در پشت صحنه ، این کنترل ها با تگ <asp: شروع می شوند. برای مثال وقتی در WebForm1.aspx یک Label بر روی فرم قرار دادیم و مقدار Text آن را به HelloWorld تغییر دادیم ، ویژوال استودیو بوسیله کد زیر آن را معرفی می کند:

<asp:label id="Message" text="Hello World" runat="server"/>

می توانید سورس صفحه را با زدن کلید سمت راست موس در هر جای آن و انتخاب View HTML Source ببینید. همچنین وقتی که از یک کلید بر روی فرم استفاده کردیم به جای اینکه از input type="Submit" استفاده شود کد زیر نوشته شد:

<asp:button text="Go!" runat="server"/>

توجه کنید که این کد یک کنترل معمولی HTML نمی سازد ، بلکه یک کنترل از نوع ASP.NET Server. در هنگام اجرا این کد با توجه به نوع مرورگر تبدیل به یک HTML ساده می شود.

Validation Controls
کنترل های اعتباری مانند دو دسته کنترلی که ذکر شد نیستند و حالت ویژوال آنها مانند قبلی ها نیست. بلکه برای تایید درستی مقدار موجود در کنترل های دیگر در سرور یا در Client به کار می روند. برای مثال فرض کنید که کاربر باید در یک جعبه متن حالت خاصی از تاریخ را بنویسد ، برای کنترل مقدار آن جعبه متن می توان از این دسته از کنترل ها استفاده کرد.

برای استفاده از این دسته کنترل ها باید کنترلی را که می خواهد مقدارش چک شود را از طریق خاصیت ControlToValidate انتخاب کنید. با این کنترل ها می توانید مقادیر را به شکل های زیر تایید کنید:

ورود اطلاعات اجباری است
شکل خاصی از اطلاعات باید تایپ شود
اطلاعات وارد شده باید بین دو مقدار خاص باشد

ویژوال بیسیک دات نت کنترل های زیر را در بخش فرم وب دارد:

RequiredFieldValidator: اطمینان از اینکه کاربر یک جعبه متن را حتما ً پر کرده باشد.
CompareValidator:
مقایسه مقدار تایپ شده توسط کاربر با مقدار پیش فرض.
RangeValidator:
اطمینان از اینکه مقداری که کاربر تایپ کرده است بین دو مقدار بیشتر و کمتر قرار دارد.
RegularExpressionValidator:
اطمینان از اینکه مقدار تایپ شده با شکلی که برنامه نویس مد نظر داشته است مطابقت دارد.
CustomValidator:
مقایسه مقداری که کاربر تایپ کرده است در برابر مقدار منطقی که برنامه نویس در نظر داشته.

بهترین راه برای دیدن قدرت این ابزار استفاده عملی از آنهاست.

یک فرم وب جدید به پروژه HelloWord اضافه کنید. یک جعبه متن بر روی آن قرار دهید و خاصیت ID آن را به txtName تغییر دهید. یک کنترل ِ RequiredFieldValidator از جعبه ابزار بردارید و در کنار جعبه متن قرار دهید. سپس یک کلید زیر جعبه متن قرار داده و خاصیت Text آن را به Submit تغییر دهید.

برای تنظیم کردن کنترل تایید کننده ابتدا ID آن را برابر rfvTxtName قرار دهید. این نام را به این دلیل انتخاب می کنیم که از نام کنترل مشخص باشد که مربوط به کدام کنترل دیگر است. از خاصیت ControlToValidate نام txtName را انتخاب کنید. سپس خاصیت ErrorMessage را به Required Field. Please enter your name تغییر دهید. این متنی است که می خواهیم به کاربر نمایش داده شود.

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

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

User Controls
این دسته از کنترل ها آنهایی هستند که خود شما می نویسید. مانند ویژوال بیسیک کلاسیک که امکان ساختن اجزای ویژوال برای وب به برنامه نویس می داد.

 



درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :