Wednesday, February 4, 2009

ASP.NET - Server Controls(1)

ေရးလက္စက ဘယ္ေရာက္ေနလဲျပန္ဖတ္ၾကည္႕ရင္း ဆက္စပ္လို႕ရမယ္ထင္တဲ႕ ASP.NET - Server Controls ေတြအေၾကာင္းဆက္ေရးပါရေစေနာ္။

PHP, Ruby On Rails, classic ASP, Cold Fusion, JSP စတဲ႕ web technologies ေတြက UI(user interface) နဲ႕ပါတ္သက္တဲ႕ button လိုမ်ိဳးေတြေရးရင္ေတာင္ standard HTML ပဲသံုးရတယ္။ ဥပမာ-
<input value="ok" type="button">

ASP.Net ကေတာ႕ အဲဒီ standard HTML ကိုလဲသံုးလို႕ရတယ္။
<input value="ok" name="btn1" type="button">
ေျပာမယ္ဆိုရင္ standard HTML က client side control ကို progammatically manipulate လုပ္စရာမလုိတဲ႕အခါမွာ သံုးတာပါ။
classic ASP တုန္းကေတာ႕ HTML standard control အေနနဲ႕ ကုဒ္ေတြေရာျပီး executable code ေတြကို ထည္႕ေရးရတယ္ ေရာျပြတ္ျပီးေတာ႕ေပါ႕။ spaghatti-code model လို႕ေခၚခဲ႕တယ္။
ASP.Net ရဲ႕ server controls ေတြကေတာ႕ ဒီျပႆနာကို ေျဖရွင္းႏိုင္ခဲ႕ပါတယ္။ တကယ္ေတာ႕ server controls ဆိုတာ server ကနားလည္တဲ႕ tags ေတြပဲျဖစ္ပါတယ္။

Server Controls သံုးမ်ိဳးရွိပါတယ္။
(၁)HTML Server Controls - Traditional HTML tags
(၂)Web Server Controls - New ASP.NET tags
(၃)Validation Server Controls - For input validation


နဲနဲအက်ယ္ျပန္ေျပာရမယ္ဆိုရင္-
(၁)HTML Server Controls - Traditional HTML tags
ရွိျပီးသား ASP pages ေတြကို ASP.Net ဆီ migration လုပ္တဲ႕အခါမွာ အသံုး၀င္ပါတယ္။ runat="server" ဆိုတာေလး ထည္႔ေပးရံုပါပဲ
ဥပမာ-
<input value="ok" name="btn1" runat="server" type="button">
ဒီမွာ name ဆိုတာက id သေဘာမ်ိဳးပါပဲ

(၂)Web Server Controls - New ASP.NET tags
ASP.Net နဲ႕ စေရးတယ္ဆိုရင္ေတာ႕ ဒီ controls ကိုပဲသံုးတာက ပိုေကာင္းပါတယ္။
ဥပမာ- <asp:button id="btn1" text="Submit" runat="server" onclick="submit" />
ဒီမွာ button server control ေလးကို ဖန္တီးပီးေတာ႕ OnClick ဆိုတဲ႕ event ေလးထည္႕ထားပါတယ္။ server controls က ၂၀၀ေက်ာ္ရွိျပီးေတာ႕ သူတို႕ရဲ႕ events ကေတာ႕ အသံုးအမ်ားဆံုးအေနနဲ႕ ၄ခုပဲရွိတာပါ။ ျပီးေတာ႕ controls ေတြမွာလဲ additional properties ေတြနဲ႕ define လုပ္ႏိုင္ပါေသးတယ္။ event နဲ႕ event handler အေၾကာင္းကိုေတာ႕ ေနာက္ပို႕စ္မွာမွ ဆက္ေျပာပါမယ္။

(၃)Validation Server Controls - For input validation
user က input data လုပ္တဲ႕အခါလိုမ်ိဳးမွာ (ဥပမာ - member registration form) သူျဖည္႕ရမဲ႕ နာမည္တို႕ ေမြးသကၠရာဇ္တို႕မွာ က်န္မေနေစတာ၊ အသက္မွာ ၁၈ႏွစ္ျပည္႕ျပီးသားျဖစ္ရမွာတို႕၊ ေမးလ္လိပ္စာမွာ @ လိုမ်ိဳး symbol ေလးပါမပါ စသျဖင္႕ စစ္ဖုိ႕လုိတဲ႕အခါမွာ ဒီလို validation and rich controls ေတြကို သံုးတာပါ။ အဲလို စစ္ထားတဲ႕ အခါ user ျဖည္႕တဲ႕ data က မကိုက္ညီဘူးဆိုရင္ error message ျပန္ေပးျပီး ျပန္ျဖည္႕ေစတာမ်ိဳးပါ။ ေျပာမယ္ဆိုရင္ သူျဖည္႕တဲ႕ data ေတြကို server side ဆီမပို႕ခင္မွာ အရင္စစ္ျပီး pass ျဖစ္မွ server side မွာ execute လုပ္မဲ႕သေဘာပါ။ ဥပမာ-

<asp:label id="Label1" runat="server" text="User Name:" />

<asp:textbox id="txtUserName" runat="server" />

<asp:requiredfieldvalidator id="vldUserName" runat="server" errormessage="You must enter a user name:" controltovalidate="txtUserName" />

ဥပမာရွင္းလင္းခ်က္။ ။User Name: ဆိုတဲ႕ label ေလးတစ္ခုနဲ႕အတူ user က data ကို input ထည္႕ဖို႕ text box တစ္ခု အရင္ create လုပ္ျပီးမွ RequiredFieldValidator ဆိုတဲ႕ validation control ေလးက txtUserName ဆိုတဲ႕ text box ေလးကို သြားစစ္ၾကည္႕တဲ႕အခါ တကယ္လို႕ နာမည္ကို မျဖည္႕ဖူးဆိုရင္ You must enter a user name: ဆိုတဲ႕ errormessage ေလးကို ရိုက္ထုတ္ခုိင္းထားတာေလးပါ။ ကိုယ္ဘာသာစမ္းၾကည္႕လိုက္ေနာ္။

တကယ္လို႕ အလြယ္တကူစမ္းၾကည္႕ခ်င္တယ္ဆိုရင္ေတာ႕ ဒီမွာ ႏွိပ္ျပီးလဲ စမး္ႏိုင္ပါတယ္(w3schools ရဲ႕ demo ေလးပါေနာ္)

ဒီပို႕စ္ေတာ႕ ဒီေလာက္ပဲ ေ၀မွ်ပါရေစ။ ေနာက္ထပ္ပို႕စ္ေတြမွာမွ အခုအထက္မွာေဖၚျပသြားတဲ႕ server controls သံုးခုလံုးကို ျပန္ျပီး အက်ယ္ရွင္းျပမယ္ေနာ္။

အားလံုးေလ႕လာေပ်ာ္ရႊင္စြာ ပညာေတြ ဆက္လက္ဖလွယ္ၾကပါဦးစို႕

4 comments:

Mee said...

Mee,

Ma,I need ur help vor asp.net school assignment.I'm very poor at it.May I know ur email address?

MELODYMAUNG said...

hi sis, can you give me yours first? I can add it. welcome to help you as much as i can. :)

Mee said...

Yes,sweet.momo.hlamyat@gmail.com

ေနာင္ေတာ္ ၊ ကိုမင္းေဆြ said...

HI sister Me,
Cheer! Good post.
Hoping sample project including User Registration page with some validation and Log In page with authentication to database.

Your ASP.net posts are clear to understand.
:)