فرم ها و كنترل های سرويس دهنده
به منظور دريافت و ارسال اطلاعات کاربران در صفحات وب ، عموما" از يک "فرم " ، استفاده می شود . بدين منظور تگ های خاصی در html پيش بينی شده است . فرم هائی که با استفاده از پتانسيل های html ايجاد می گردند ، فرم های html ناميده شده و می توان از کنترل های html متعددی نظير Textbox , Checkbox و Dropdown list همراه آنان استفاده نمود . تمامی کنترل های فوق ، تسهيلات لازم در خصوص دريافت و ارسال اطلاعات کاربران را ارائه می نمايند.
ASP.NET علاوه بر کنترل های html ، دارای کنترل های اختصاصی خود بوده که در اين رابطه برخی مفاهيم جديد در خصوص آنان نيز ارائه شده است . در گذشته و در مواردی که فرم ها با استفاده از فرم های html ايجاد می گرديدند ، زمانی که يک کنترل خاص بر روی يک فرم توسط کاربر انتخاب می گرديد ، مسئوليت برخورد با داده و يا اطلاعات درج شده در کنترل مورد نظر بر عهده مرورگر بود و صرفا" زمانی که فرم بهمراه اطلاعات موجود برای سرويس دهنده وب ، ارسال می گرديد ، مسئوليت سرويس دهنده در خصوص برخورد مناسب و تعريف شده با داده های موجود در فرم ، آغاز می گرديد . در فريمورک دات نت ، ويژگی های جديدی نظير بخاطر سپردن داده درج شده توسط کاربر در يک Textbox ، فراهم شده است .
در مجموعه مقالاتی که ارائه خواهد شد به بررسی موارد زير پرداخته و از اين رهگذر توانمندی خود را در بکارگيری فرم ها ، استفاده از کنترل های HTML و کنترل های سرويس دهنده ASP.NET ، افزايش خواهيم داد .
• مدل سرويس گيرنده - سرويس دهنده وب
• فرم های وب و فرم های HTML
• کنترل های فرم HTML
• کنترل های سرويس دهنده
فرم ها در دنيای واقعی
• دريافت اطلاعات از کاربران به منظورريجستر نمودن آنان ، خريد يک محصول ، پيوستن به ليست های Email و يا Newsgroup
• دريافت نقظه نظرات کاربران. بدين ترتيب می توان ساير صفحات را با توجه به اطلاعات دريافتی سفارشی نموده و چيزی را نمايش دهيم که مورد علاقه کاربران است .
• آگاهی از وضعيت ارائه يک سرويس و نحوه بهبود آن ( رای گيری )
• درج و ويرايش متن به صورت online در يک Forum و يا newsgroup
فرم ها ، يکی از متداولترين روش های دريافت اطلاعات از کاربران و ارسال آنان برای سرويس دهنده ، محسوب می گردند.
صفحات وب ، فرم های HTML ، فرم های وب
• صفحات وب: يک صفحه وب،نظير يک بسته حاوی کد Html است که در آن از تگ های HTML که ابتدای آن با <html> و انتهای آن با < html /> مشخص می گردد ، استفاده می شود . صفحات وب بر روی يک ماشين خاص مستقر شده و سرويس دهنده وب مسئوليت پاسخگوئی به درخواست ها را برعهده خواهد داشت . محتويات يک صفحه وب می تواند شامل متن ، گرافيک ، صوت ، فيلم و يا کد های نوشته شده با استفاده از تکنولوژی هائی نظير جاوا اسکريپت باشد .
• فرم HTML : يک فرم Html ، صفحه وبی است که در آن از يک و يا چندين کنترل فرم به منظور دريافت اطلاعات کاربران و ارسال آنان برای سرويس دهنده استفاده می گردد . button ,textbox , checkbox و dropdown lists ، متداولترين کنترل های استفاده شده در فرم ها محسوب می گردند. کاربران ، اطلاعاتی را از طريق فرم و با توجه به کنترل های موجود بر روی آن وارد نموده و در ادامه با فشردن دکمه Submit آنان را برای سرويس دهنده وب ، ارسال می نمايد . با اين که به منظور ارسال اطلاعات بر روی سرويس دهنده به چيزی بيش از HTML ، نياز نخواهد بود ، سرويس دهنده نيازمند بکارگيری تکنولوژی های اضافه ای ( مثلا" ASP.NET ) به منظور انجام عمليات و پردازش های لازم در ارتباط با اطلاعات دريافتی است . صفحات HTML شامل فرم هائی می باشند که عموما" با انشعاب html ( و يا در برخی موارد htm )، ذخيره می گردند.
• فرم های وب : فرم های وب ، مشابه فرم های HTML بوده و با مشاهده شکل ظاهری آنان نمی توان تفاوت موجود بين آنان را تشخيص داد . با استفاده از کد ASP.NET در فرم های وب و ايجاد ارتباط بين هر يک از کنترل های موجود بر روی يک فرم وب و روتين های نوشته شده ، می توان فرم هائی کاملا" پاسخگو را ايجاد نمود . معمولا" در مواردی که از واژه "فرم وب " ، استفاده می گردد ، بنوعی به دو بخش کد جداگانه در آنان اشاره می گردد :
تمپليت های Html : اين تمپليت ها شامل اطلاعات مربوط به لی اوت صفحه و کنترل های سرويس دهنده ASP.NET می باشند . مسئوليت نمايش فرم وب بر روی مرورگر به عهده اين بخش واگذار شده است .
کد ASP.NET ، منطق پردازش لازم در ارتباط با فرم های وب را ارائه می نمايد . بخش فوق ، مسئوليت توليد محتويات پويا را که توسط فرم وب نمايش داده خواهد شد ، برعهده دارد .
• فرم های ASP.NET : با اين که ممکن است يک فرم وب به شکل يک فرم Html نيز ارائه گردد ، بخاطر داشته باشيد که آنان دارای ماهيتی کاملا" متفاوت می باشند. زمانی که از ASP.NET بهمراه فرم ها استفاده نموده و يک فرم وب را ايجاد می نمائيم ، می توان از کنترل های سرويس دهنده ASP.NET همراه تگ های HTML استفاده بعمل آورد . کنترل های سرويس دهنده ، علاوه بر افزايش توان عملياتی برخی از عناصر HTML ( نظير کنترل های فرم ) ، پتانسيل های جانبی ديگری را نيز ارائه می نمايند . يک کنترل سرويس دهنده دارای شکل ظاهری مشابه عناصر HTML می باشد . ولی عملا" نقطه ای در صفحه را مشخص می نمايد که سرويس دهنده نيازمند توليد يک عنصر شبه HTML مرتبط با آن است . مزيت روش فوق در مقابل استفاده از کنترل های فرم ، ايجاد محتويات پويا برای فرم قبل از ارسال آن برای مرورگر است . برای ايجاد محتويات پويا بر روی يک فرم، می توان کد مورد نظر را در هر محلی از صفحه مستقر نمود. بدين منظور از تگ <script>، استفاده می گردد. از تگ فوق می توان در هرمحلی از فايل aspx . ، استفاده بعمل آورد .( معمولا" به منظور افزايش خوانائی برنامه آن را در ابتدای صفحه قرار داده و در موارد ديگر می توان تمامی کدهای نوشته شده را در يک فايل جداگانه ، قرار داد ) .
امکان استفاده از کنترل های فرم های Html برای فرم های وب نيز وجود دارد . ASP.NET بهمراه مجموعه ای از کنترل های فرم اختصاصی که بر روی سرويس دهنده اجراء می گردند ، ارائه شده است . معمولا" سعی می گردد در فرم های وب از کنترل های سرويس دهنده استفاده شود ، چراکه کنترل های فوق قادربه بخاطر سپردن وضعيت کنترل های متفاوت ( نظير درج متن در يک textbox ) نيز می باشند .
اجازه دهيد با چهار اصطلاح جديدی که به آنان اشاره گرديد ، بطور خلاصه آشنا شويم :
• يک صفحه وب ، صرفا" شامل تگ های HTML می باشد ( اين نوع صفحات می توانند شامل اسکريپت های نوشته شده با يک زبان اسکريپت نويسی نظير جاوااسکريپت نيز باشند ) .
• يک فرم HTML ، صفحه وبی است که در آن از کنترل های فرم HTML استفاده شده است .
• يک فرم وب ، صفحه ای است که در آن کد ASP.NET بهمراه يک تمپليت HTML ، استفاده شده است .
• يک فرم ASP.NET ، فرم وبی است که در آن از کنترل های سرويس دهنده ASP.NET استفاده شده است .
مدل سرويس گيرنده - سرويس دهنده
• زمانی که شما درخواست يک صفحه وب را از يک سايت می نمائيد ، بطور اتوماتيک با سرويس دهنده وب آن ارتباط برقرار می نمائيد . فرآيند ارسال آدرس درخواستی شما ( URL ) ، "ايجاد يک درخواست برای سرويس دهنده" ، ناميده می شود . سرويس دهنده وب ،درخواست ارسالی شما را بررسی نموده و پس از يافتن صفحه درخواستی و اجرای کد مندرج در آن ، پاسخ لازم به درخواست شما را خواهد داد . فرآيند فوق ، "پاسخ به مرورگر" ناميده می شود . در تمامی فرآيند فوق ، مرورگر وظيفه و يا نقش سرويس گيرنده را برعهده داشته و سرويس دهنده وب ، نقش سرويس دهنده را برعهده دارد . در سناريوی فوق که به "ارتباط سرويس گيرنده و سرويس دهنده " ، مشهور است ، سرويس دهنده مسئوليت ذخيره سازی ، تفسير و توزيع داده را برعهده داشته و سرويس گيرنده با دستيابی به سرويس دهنده امکان دريافت داده را پيدا می نمايد .
پروتکل HTTP
• پيام ارسالی توسط مرورگر به سرويس دهنده وب که در آن درخواست يک صفحه خاص شده است را HTTP Request می نامند . زمانی که سرويس دهنده وب درخواست فوق را دريافت می نمايد ، پس از بررسی آن و در صورت يافتن فايل درخواستی آن را با فرمت Html برای مرورگر ارسال می نمايد( HTTP Response ) . در صورتی که سرويس دهنده وب ، فايل درخواستی را پيدا ننمايد با ارسال يک پيام خطاء سرويس گيرنده را از اين موضوع آگاه می نمايد .
• HTTP يک پروتکل Stateless است . در اين رابطه پس از ايجاد درخواست و پاسخ به آن ، ارتباط ايجاد شده منطقی بين سرويس گيرنده و سرويس دهنده قطع خواهد شد . در صورتی که سرويس گيرنده درخواست يک صفحه ديگر از سرويس دهنده را داشته باشد ، مجددا" يک ارتباط ديگر و بدون بخاطرسپردن و يا يادآوری عمليات قبلی ، ايجاد می گردد . ( تک تراکنشی )
نحوه ارائه يک صفحه وب در ASP.NET
• مرحله دوم : سرويس دهنده بررسی لازم در خصوص يافتن فايل درخواستی را آغاز می نمايد . در صورتی که فايل فوق از نوع صفحات ASP.NET باشد ، می بايست کد موجود در آن به منظور توليد Html مورد نياز اجراء شده و ماحصل عمليات برای مرورگر ، ارسال گردد .
• مرحله سوم : در صورتی که فايل درخواستی دارای پسوند aspx. باشد ، سرويس دهنده آن را به منظور پردازش در اختيار aspnet_isapi.dll ( مرتبط با سرويس دهنده وب ) ، قرار خواهد داد . aspnet_isapi.dll چيز زيادی را خود انجام نداده و صرفا" کد ASP.NET را به مقصد CLR) Common Language Runtime) ، هدايت می نمايد. در صورتی که کد ASP.NET قبلا" کمپايل نشده باشد، در ادامه ترجمه شده و در نهايت اجراء و خروجی آن به صورت Html ايجاد می گردد . ( توليد پويای HTML ) .
• مرحله چهارم : HTML توليد شده در مرحله قبل برای مرورگر ، ارسال می گردد .
• مرحله پنجم : مرورگر صفحه وب را نمايش خواهد داد .
پس از آشنائی با مدل سرويس گيرنده - سرويس دهنده ، پروتکل HTTP و نحوه ارائه يک صفحه وب در ASP.NET به بررسی فرم های HTML خواهيم پرداخت . پس از آشنائی با فرم های HTML ، امکان معرفی و استفاده سريعتر از کنترل های سرويس دهنده ASP.NET ، فراهم می گردد .
تگ <form>
در مرورگر نت اسکيپ قبل ازنسخه شماره شش ، کنترل های فرم نمی توانند بدون استفاده از تگ <form> نمايش داده شوند . به عبارت ديگر تمامی کنترل های فرم نظير textbox و radio button می بايست درون تگ <form> ، قرار داده شوند ، در غير اينصورت مرورگر نت اسکيپ قادر به نمايش آنان نخواهد بود . در IE و Opera همچنان می توان کنترل های فرم را بدون استفاده از تگ <form> ، نمايش داد ، ولی در صورتی که قصد ارسال داده برای سرويس دهنده وجود داشته باشد ، می بايست کنترل ها درون يک تگ <form> ، قرار گيرند . بهمراه تگ فوق از خصلت های متعددی ( يازده مورد ) استفاده می گردد . در ادامه به بررسی صرفا" دو نمونه ضروری آنان خواهيم پرداخت ( action ، method ) .
خصلت action ، صفحه وب مورد نظر به منظور دريافت داده های درج شده بر روی يک فرم را مشخص می نمايد . نحوه استفاده از خصلت action به صورت زير است :
<form action="testpage.aspx" ... > |
زمانی که يک فرم برای سرويس دهنده ارسال می گردد ، می بايست صفحه وبی که قرار است اطلاعات به آن تحويل داده شوند ، مشخص گردد . دربرخی موارد ممکن است پاسخ يک صفحه برای خود آن صفحه ارسال گردد .
خصلت method : خصلت فوق ، روش استفاده شده به منظور ارسال داده در پروتکل HTTP را مشخص می نمايد . به منظور ارسال داده از روش های متفاوتی استفاده می گردد . روش های GET و POST دو نمونه متدوال در اين زمينه می باشند .
متد GET : در اين روش داده موجود بر روی يک فرم که قرار است برای سرويس دهنده ارسال شود ، به انتهای URL و به شکل " نام / مقدار" ، اضافه می گردد. متد GET، گزينه پيش فرض در خصوص نحوه ارسال اطلاعات يک فرم می باشد .
?sitename =Srco |
اولين بخش از زوج "نام / مقدار" ، نشاندهنده "نام" و دومين بخش مقدار مورد نظر به منظور ذخيره سازی را نشان می دهد. نام و مقدار متناظر با آن به صورت اتوماتيک از يک عنصر موجود بر روی فرم نظير يک textbox ويا checkbox ، اخذ می گردند. نام کنترل استفاده شده بر روی فرم ، نام استفاده شده در متد GET بوده و محتوياتی را که کاربر در کنترل مورد نظر درج و يا انتخاب می نمايد، مقدار موردنظر را مشخص می نمايد . در مثال فوق ، 'sitename' ، نام مورد نظر بوده و 'Srco' ، مقدار مرتبط با آن است . مرورگر در زمان ارسال صفحه برای سرويس دهنده ، اطلاعات فوق را به صورت اتوماتيک به URL اضافه می نمايد:
http://www.srco.ir/testpage.aspx?sitename =Srco |
امکان استفاده بيش از يک زوج نام /مقدار بهمراه يک URL وجود خواهد داشت . در چنين مواردی هر زوج توسط علامت "&" ( ampersand ) ، از يکديگر جدا می گردند .
http://www.srco.ir/testpage.aspx?sitename =Srco&webmaster=TEST |
بخش اضافه شده به URL را query string می گويند . GET تنها روش موجود به منظور ارسال داده بين سرويس گيرنده و سرويس دهنده نمی باشد و در اين رابطه از متد POST نيز استفاده می گردد .
متد POST : يکی از معايب ارسال داده با استفاده از query string ، به ماهيت ارسال اطلاعات برمی گردد . درصورتی که ضرورتی و يا علاقه ای به نمايش داده ارسالی در آدرس URL را نداشته باشيم، می توان از متد POST استفاده نمود . عملکرد روش فوق تا اندازه ای شبيه متد GET بوده و تنها تفاوت اساسی بين آنان به ارسال داده در بدنه HTTP Requets برمی گردد ( نه به عنوان بخشی همراه URL ) . سياست فوق ، ايمنی بسيار بالائی را نسبت به متد GET ارائه نمی نمايد و ما صرفا" داده ارسالی را در URL مشاهده نمی نمائيم . متد POST ، همچنين امکان ارسال حجم بيشتری از اطلاعات را فراهم می نمايد. برخی از سرويس دهندگان وب دارای محدوديت حجم متن ارسالی همراه يک URL می باشند. متد POST ، دارای چنين محدوديتی نمی باشد.
درASP.NET به منظور انتخاب روش ارسال اطلاعات در يک فرم ، گزينه ای وجود نداشته و تمامی فرم ها با استفاده از متد POST برای سرويس دهنده ارسال می گردند .
کنترل های فرم HTML
برای تعريف اکثر کنترل های فرم Html از تگ <Input> ، استفاده می گردد.در ادامه با کنترل های فرم HTML که امکان استفاده از آنان به همراه صفحات وب وجود دارد ، بيشتر آشنا می شويم .
نام کنترل | TextBox |
شکل ظاهری |
|
توضيحات | فيلدهای تک خطی که می توان در آنان متن دلخواهی را تايپ نمود. |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن textدر نظر گرفته می شود . |
نام کنترل | Text Area |
شکل ظاهری |
|
توضيحات | فيلدهای چندخطی که می توان در آنان متن دلخواهی را تايپ نمود . |
نحوه پياده سازی | استفاده از تگ <textarea> |
نام کنترل | Radio buttons |
شکل ظاهری |
انتخاب اول انتخاب دوم انتخاب سوم |
توضيحات | دکمه هائی به منظور ارائه چندين گزينه که صرفا" امکان انتخاب يکی از آنان وجود خواهد داشت. |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن radioدر نظر گرفته می شود. |
نام کنترل | Check boxes |
شکل ظاهری |
انتخاب اول انتخاب دوم انتخاب سوم |
توضيحات | دکمه هائی به منظور ارائه چندين گزينه که امکان انتخاب تعدادی از آنان وجود خواهد داشت. |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن checkboxدر نظر گرفته می شود. |
نام کنترل | List boxes |
شکل ظاهری |
|
توضيحات | دکمه هائی به منظور ارائه يک منوی Dropdownکه امکان انتخاب يک و يا چندين آيتم را در اختيار کاربر قرار می دهد . |
نحوه پياده سازی | استفاده از تگ <select> |
نام کنترل | Submit buttons |
شکل ظاهری |
|
توضيحات | دکمه هائی به منظور ارسال فرم های HTMLبرای سرويس دهنده |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن submitدر نظر گرفته می شود. |
نام کنترل | Reset buttons |
شکل ظاهری |
|
توضيحات | دکمه های resetنمودن محتويات يک فرم HTMLکه هنوز ارسال نشده است . |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن Resetدر نظر گرفته می شود. |
نام کنترل | Normal buttons |
شکل ظاهری |
|
توضيحات | باعث فعال شدن رويداد مربوطه می گردند . |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن buttonدر نظر گرفته می شود. |
نام کنترل | Password fields |
شکل ظاهری |
|
توضيحات | کنترل فوق ، مشابه textboxاست ، با اين نفاوت مهم که هر چيزی را که درون آن تايپ می گردد،توسط علامت ستاره نمايش داده می شود . |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن passwordدر نظر گرفته می شود. |
نام کنترل | Hidden filelds |
شکل ظاهری |
ندارد |
توضيحات | فيلدهای مخفی که در HTMLمقداردهی شده و همراه ساير داده های فرم ارسال می گردند. |
نحوه پياده سازی | استفاده از تگ <input> که خصلت typeآن hidedenدر نظر گرفته می شود. |
همانگونه که مشاهده می شود از تگ <input> در اکثر کنترل های فرم HTML استفاده می گردد. به همراه تگ <input> ، صرفا" می توان از چهار خصلت زير استفاده کرد :
• name : از خصلت فوق به منظور شناسائی کنترل در کد ASP.NET ، استفاده می گردد .
• type : خصلت فوق ، نوع کنترل استفاده شده را مشخص می نمايد. گزينه های معتبر موجود در اين رابطه Submit , Reset , Radio , Checkbox ,Hidden , Text ,Password و Button می باشند ( در اين رابطه گزينه های image و file option نيز وجود دارد ) .
• Value : از خصلت فوق به منظور مشخص نمودن مقادير پيش فرض برای برخی کنترل های button و يا text استفاده می گردد .
• checked : از خصلت فوق به منظور مشخص نمودن گزينه انتخابی پيش فرض در برخی کنترل های نظير کنترل radio استفاده می گردد .( همزمان با مشاهده فرم توسط کاربر ، گزينه مورد نظر به صورت پيش فرض انتخاب شده است ) .
از تمامی خصلت های فوق به منظور دستيابی و پردازش کنترل های فرم در کد ASP.NET ، استفاده می گردد .
نحوه استفاده از تگ <form> در ASP.NET
<form runat="server" > |
خصلت runat به سرويس دهنده وب اعلام می نمايد که می بايست فرم را پردازش نمايد . ( صرفا" مسئوليت سرويس دهنده وب ، ارسال فرم برای سرويس گيرنده نبوده و در اين رابطه می بايست پردازش های لازم قبل از ارسال فرم نيز انجام شود ) . همانگونه که مشاهده می گردد در تعريف فرم فوق، مقدار خاصی به خصلت method نسبت داده نشده است. ASP.NET خود قادر به تشخيص و ارائه مقادير مورد نظر می باشد . در حقيقت تمامی فرم های ASP.NET با استفاده از متد POST ارسال می گردند . تگ <form> ارائه شده به همراه ASP.NET ، امکان پردازش کنترل های موجود بر روی يک فرم را برای سرويس دهنده فراهم می نمايد . در ASP.NET نسخه های سفارشی شده از کنترل ها در مقايسه با کنترل های فرم HTML با هدف ارائه تسهيلات لازم به منظور پردازش فرم ها و حل برخی مشکلات موجود نظير برخورد با ماهيت Stateless بودن پروتکل HTTP ، ارائه شده است.
کنترل های سرويس دهنده ASP.NET
کنترل <asp:label>
خصلت | عملکرد |
Backcolor | رنگ زمينه labelرا مشخص می نمايد . |
ForeColor | رنگ رويه labelرا مشخص می نمايد . |
Height | بلندی Labelبر حسب پيکسل را مشخص می نمايد . |
ID | تعريف يک شناسه منحصر بفرد برای يک Label |
Visible | با نسبت دادن مقدار Trueو False، نمايش و يا عدم نمايش يک Lableمشخص می گردد . |
Width | پهنای کنترل labelرا مشخص می نمايد. |
مثال : به منظور ايجاد يک کنترل label با حداقل اطلاعات موردنياز می توان صرفا" از خصلت های id و runat استفاده نمود :
<asp:label id="message1" forecolor = "Red" runat="server" > Test1 </asp:label> |
خصلت id ، يک نام منحصربفرد به منظور شناسائی کنترل <label> را مشخص می نمايد.بدين ترتيب امکان مراجعه به آن از طريق کد ASP.NET فراهم می گردد . خصلت runat = sever به سرويس دهنده اعلام می نمايد که کنترل را پردازش و کد معادل HTML را به منظور ارسال برای سرويس گيرنده ، توليد نمايد .
در صورتی که قصد داشته باشيم که متن مورد نظر را با يک رنگ خاص نمايش دهيم ، کنترل label را به صورت زير استفاده خواهيم کرد :
<asp:label id="message1" Text = "Test1" runat="server" / > |
همچنين می توان از خصلت text به منظور مشخص نمودن متن مورد نظر جهت نمايش ، استفاده نمود .در کد زير ، تگ پايان حذف و در مقابل از علامت "/" که نشاندهنده پايان تگ است ، استفاده شده است .
<asp:label id="message1" Text = "Test1" runat="server" / >
پيشوند <asp:> ، اعلام می نمايد که کنترل label از مجموعه کنترل های از قبل ساخته شده ASP.NET است .
مثال : نحوه استفاده از کنترل label
: تايپ کد زير با استفاده از يک ويرايشگر
<html dir =rtl> |
برای تمامی اهداف و خواسته ها يک کنترل label را می توان با يک کنترل HTML ، جايگزين نمود. تنها تفاوت موجود به اين موضوع برمی گردد که کنترل فوق بر روی سرويس دهنده اجراء می گردد .با مشاهده کد HTML از طريق برنامه مرورگر خود ، اطلاعات زير را مشاهده خواهيم کرد :
<html dir =rtl> |
همانگونه که مشاهده می گردد ، کنترل <asp:label> به معادل تگ <span> در HTML ترجمه شده است ( دارای عملکردی مشابه می باشند ) .
نحوه استفاده از خصلت های کنترل در يک برنامه ASP.NET
... |
در ادامه ، اسکريپت زير را قبل از کد HTML اضافه می نمائيم .
<script language="vb" runat="server"> |
با اعمال تغييرات فوق ، مقداردهی خصلت Text مربوط به کنترل label از طريق کد نوشته شده ASP.NET ، انجام می شود.
در مثال فوق ، با استفاده از روتين Page_Load که در زمان استقرار صفحه درخواستی در حافظه ، اجراء می گردد ، به خصلت text هر يک از کنترل های Label دستيابی و مقدار مورد نظر به آنان نسبت داده شده است . ( اختصاص پويای متن مورد نظر به يک کنترل label ) .
Message1.Text = "کاربرانمحترم" |
تمامی کنترل های سرويس دهنده HTML به صورت اشيائی جداگانه ايجاد شده و می توان از طريق کد ASP.NET به آنان دستيابی داشت . به منظور دستيابی به هر يک از خصلت های يک کنترل سرويس دهنده ، می توان از گرامر زير استفاده کرد :
[ServerControl].[ServerControlAttribute] |
مثلا" به منظور غير فعال نمودن وضعيت نمايش، می توان خصلت visible را به صورت زير مقداردهی نمود :
Message.Visible="false" |
کنترل <asp:dropdownlist>
کنترل فوق يکی از بهترين کنترل های موجود به منظور نشان دادن اهميت و ضرورت پردازش يک کنترل بر روی سرويس دهنده می باشد. قبل از بررسی کنترل فوق ، در ابتدا با معادل آن در HTML بيشتر آشنا می شويم . Dropdown listbox ها در HTML با استفاده از تگ <select> و <option> پياده سازی می گردند ، برای هر option از يک تگ شروع و يک تگ پايان <option> ، درون تگ <select> ، استفاده می گردد :
<select name = "City" > |
به منظور ايجاد يک list control در ASP.NET که عملکردی مشابه کد فوق را داشته باشد ، از کد زير استفاده می شود :
<asp:dropdownlist id="City" runat="server"> |
کد فوق نسبت به کد معادل HTML ، دارای سه تفاوت اساسی است :
• جايگزينی تگ <asp:dropdownlist> با تگ <select>
• جايگزينی تگ <asp:listitem> با تگ <option>
• جايگزينی خصلت Id با name
از لحاظ شکل ظاهری کنترل <asp:dropdownlist> ، مشابه کنترل dropdown list در HTML است .
مثال : نحوه استفاده از کنترل dropdownlist
: تايپ کد زير با استفاده از يک ويرايشگر
<script runat="server" language="vb"> |
در صورت مشاهده View|Source در مرورگر ، کد زير نمايش داده می شود .
<<html dir = rtl> |
توضيحات :
• تمامی اطلاعات با فرمت HTML برای سرويس گيرنده اارسال می گردد.
• با استفاده از تگ <form> و مقدار دهی خصلت runat به server يک فرم تعريف و به ASP.NET اعلام می شود که فرم بر روی سرويس دهنده اجراء می گردد . در صورتی که تعريف فوق را با آن چيزی که در مرورگر نمايش داده می شود ، مشاهده می نمائيم ، تفاوت های زيادی را مشاهده خواهيم کرد :
<form name="_ctl0" method="post" action="DropdownlistTest.aspx" id="_ctl0"> |
• ASP.NET ، چهار خصلت جديد را ايجاد نموده است . خصلت های name و id اهداف يکسانی را دنبال می نمايند . ( مشخص نمودن انحصاری فرم ) . همانگونه که قبلا" اشاره گرديد فرم های HTML نيازمند يک صفحه به منظور دريافت داده و يک روش به منظور ارسال اطلاعات می باشند. ما هيچکدام از موارد فوق را در کد ASPX .، مشخص ننموده ايم . بنابراين ASP.NET ، آنان را برای ما مشخص نموده است . خصلت action به صفحه يکسانی که ما اجراء نموده ايم ، اشاره داشته و پاسخ ها را برای آن ارسال می نمايد . همچنين به صورت پيش فرض، روش ارسال اطلاعات به صورت POST در نظر گرفته شده است .
• کنترل های سرويس دهنده ASP.NET داده های موجود بر روی فرم را برای کد ASP.NET ارسال می نمايند . بدين منظور و در جهت دستيابی به آنان از طريق کد ASP.NET ، از روتين زير استفاده شده است :
<script runat="server" language="vb"> |
• در روتين page_Load ، بررسی لازم در خصوص انتخاب يک آيتم توسط کاربر ، انجام شده و در ادامه يک پيام مناسب به منظور تائيد انتخاب انجام شده ، برای کاربر نمايش داده می شود. در صورتی که تاکنون انتخابی صورت نگرفته باشد ، پيامی در کنترل <label>، نمايش داده نمی شود . اولين خط موجود در روتين ، نشاندهنده اين موضوع است که آيا قبلا" صفحه برای کاربر ارسال شده است ؟ بدين منظور ازشی Page استفاده شده است . شی فوق ، يک رکورد از وضعيت اطلاعاتی يک فرم را که توسط يک کاربر ارسال شده است در IsPostback نگهداری می نمايد . در صورتی که فرم قبلا" نيز ارسال شده باشد ، IsPostBack مقدار true و در غير اين صورت مقدار False را برمی گرداند . کد محصور بين if و end if ، صرفا" در زمانی که فرم مجددا" برای کاربر ارسال شده باشد ، اجراء می گردد. بنابراين اگر اولين مرتبه ای است که کاربر فرم را مشاهده می نمايد ، کد فوق اجراء نخواهد شد .
کنترل <asp:listbox>
<asp:listbox id="list1" runat="server" selectionmode="multiple"> |
خصلت selectionmode امکان انتخاب يک و يا چندين گزينه را مشخص می نمايد . ( مقدار پيش فرض انتخاب يک گزينه است ) .
مثال : نحوه استفاده از کنترل listbox
: تايپ کد زير با استفاده از يک ويرايشگر
<script runat="server" language="vb"> |
کنترل <asp:textbox>
خصلت | عملکرد |
textmode | نوع کنترل textboxرا مشخص می نمايد . |
Rows | تعداد خطوطی را که textboxمی تواند داشته باشد ، مشخص می نمايد . اين خصلت زمانی کار می کند که قبلا" مقدار خصلت textmodeمعادل multilineدر نظر گرفته شده باشد . |
Columns | تعداد ستون مورد نظر برای يک Textboxرا مشخص می نمايد . اين خصلت زمانی کار می کند که قبلا" مقدار خصلت textmodeمعادلmultiline در نظر گرفته شده باشد . |
مثال : نحوه استفاده از کنترل textbox
: تايپ کد زير با استفاده از يک ويرايشگر
<script runat="server" language="vb"> |
توضيحات :
• در مثال فوق از سه نوع کنترل textbox استفاده شده است :
<asp:textbox id="text1" runat="server" /> |
• به منظور نمايش نتايج مربوط به هر يک از کنترل های فوق ، از سه کنترل label که هر يک دارای کد شناسائی منحصر بفرد خاص خود می باشند، استفاده شده است . بذين ترتيب ، می توان اطلاعات درج شده در هر يک از کنترل ها را در يک کنترل label جداگانه ، نمايش داد .
<asp:label id="Message1" runat="server" /><br /> |
کنترل های <asp:radiobuttonlist> و <asp:radiobutton>
در HTML از کنترل radio button در مواردی که دارای چنيدين گزينه می باشيم و قصد داريم که کاربران يکی از آنان را انتخاب نمايند ، استفاده می گردد. در صورت انتخاب يک گزينه ، امکان انتخاب گزينه های ديگری وجود نخواهد داشت . به منظور پياده سازی radio button در HTML از تگ <input> که خصلت type آن radio در نظر گرفته می شود، استفاده می گردد . هر radio button موجود بر روی فرم دارای تگ اختصاصی input مربوط به خود بوده و هر radio button موجود در يک گروه خاص ، می بايست دارای خصلت name يکسانی باشند.
کنترل های <asp:radiobutton> و <asp:radiobuttonlist> ، با روشی متفاوت نسبت به معادل خود در HTML کار می نمايند . در HTML ، با استفاده از خصلت name به تمامی آنان يک نام يکسان نسبت داده شود .
A <input name= "radio1" type"radio"> |
بدين ترتيب ، صرفا" امکان انتخاب يک گزينه وجود خواهد داشت . در کنترل <asp:radiobutton> ، امکان انجام چنين کاری وجود نداشته و در صورتی که تمامی آنان دارای نام يکسانی باشند ( با استفاده از خصلت id ) ، با يک پيام خطاء مواجه خواهيم شد:
A <asp:radiobutton id="radio1" runat="server" /> |
در اين رابطه لازم است که از کنترل <asp:radiobuttonlist> ، استفاده گردد. عملکرد کنترل فوق مشابه کنترل listbox می باشد . به منظور تعريف هر يک از آيتم ها درون کنترل <asp:radiobuttonlist> ، از <asp:listitem> ، استفاده می گردد .
<asp:radiobuttonlist id="radio1" runat="server" > |
مثال : نحوه استفاده از کنترل <asp:radiobutton>
: تايپ کد زير با استفاده از يک ويرايشگر
<<script runat="server" language="vb"> |
کنترل های <asp:checkbox> و <asp:checkboxlist>
<asp:checkbox id="check1" runat="server" > |
در صورتی که قصد داريم آرايه ای از Checkbox را داشته باشيم ، می توان آنان را درون يک کنترل <asp:checkboxlist> ، قرار داد. در چنين مواردی می بايست خصلت id برای کنترل <asp:checkboxlist> ،بدرستی مقدار دهی شده و برای هر يک از گزينه های درون کنترل ، از يک کنترل <asp:listitem>، استفاده شود.
<asp:checkboxlist id="check1" runat="server" > |
مثال : نحوه استفاده از کنترل <asp:checkboxlist>
مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر
<<script runat="server" language="vb"> |