ASP.NET টিউটোরিয়াল :[পর্বঃ ১১]:: ASP.NET Web Forms এর পোল লিস্টে Hashtable Object এর ব্যবহার

ASP.NET টিউটোরিয়াল :[পর্বঃ ১১]:: ASP.NET Web Forms এর পোল লিস্টে Hashtable Object এর ব্যবহার
লেখকঃ মোস্তাফিজুর ফিরোজ ।

গত পর্বে আমরা পোল তৈরী করা শিখেছিলাম । আজ আমরা Hashtable Object যোগ করে এই পোলের অপশন গুলোকে বিভিন্ন ভাবে সাজানো শিখবো ।

Hashtable তৈরী
Hashtable Object সাধারণতঃ key অথবা value এর জোড়া সংগ্রহ করে রাখে । keys গুলো সূচী তৈরির কাজে ব্যবহার করা হয় । যাতে তাড়াতাড়ি সার্চ করলে পরে খুব সহজে পাওয়া যায় । Add() method এর মাধ্যমে আমরা Hashtable এ আইটেম যোগ করতে পারি । তাহলে কোডটা কেমন হয় একটু দেখে নেইঃ

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New Hashtable
mycountries.Add(“N”,”Norway”)
mycountries.Add(“S”,”Sweden”)
mycountries.Add(“F”,”France”)
mycountries.Add(“I”,”Italy”)
end if
end sub
</script>

ডাটা বাইন্ডিং
Hashtable object নিম্নলিখিত টেক্সট এবং ভেলু জেনারেট করতে পারে ।
asp:RadioButtonList
asp:CheckBoxList
asp:DropDownList
asp:Listbox

RadioButtonList এ ডাটা বাইন্ডিং এর জন্য আগে আপনাকে .aspx পেজে RadioButtonList কন্ট্রোল তৈরী করে নিতে হবে ।

<html>
<body>

<form runat=”server”>
<asp:RadioButtonList id=”rb” runat=”server” AutoPostBack=”True” />
form>

</body>
</html>

তারপর নিচের স্ক্রিপ্ট যোগ করে নিতে হবে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New Hashtable
mycountries.Add(“N”,”Norway”)
mycountries.Add(“S”,”Sweden”)
mycountries.Add(“F”,”France”)
mycountries.Add(“I”,”Italy”)
rb.DataSource=mycountries
rb.DataValueField=”Key”
rb.DataTextField=”Value”
rb.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:RadioButtonList id=”rb” runat=”server” AutoPostBack=”True” />
</form>

</body>
</html>

ব্যবহারকারীরা যখন RadioButtonList control এর যেকোনো আইটেমে ক্লিক করে তখন দেখানোর জন্য আমরা কিছু টেক্সট sub routine মেনুতে যোগ করে দিতে পারি নিচের মত করে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New Hashtable
mycountries.Add(“N”,”Norway”)
mycountries.Add(“S”,”Sweden”)
mycountries.Add(“F”,”France”)
mycountries.Add(“I”,”Italy”)
rb.DataSource=mycountries
rb.DataValueField=”Key”
rb.DataTextField=”Value”
rb.DataBind()
end if
end sub

sub displayMessage(s as Object,e As EventArgs)
lbl1.text=”Your favorite country is: ” & rb.SelectedItem.Text
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:RadioButtonList id=”rb” runat=”server”
AutoPostBack=”True” onSelectedIndexChanged=”displayMessage” />
<p><asp:label id=”lbl1″ runat=”server” /></p>
</form>

</body>
</html>

এভাবে আপনি আপনার পছন্দমত বিভিন্ন টেক্সট যোগ করে দেখাতে পারেন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ১০]:: ASP.NET Web Forms দিয়ে ভোটিং অথবা পোল লিস্ট বানানো

ASP.NET টিউটোরিয়াল :[পর্বঃ ১০]:: ASP.NET Web Forms দিয়ে ভোটিং অথবা পোল লিস্ট বানানো
লেখকঃ মোস্তাফিজুর ফিরোজ ।

আমরা সবাই চাই আমাদের সাইটে একটা পোল লিস্ট থাকুক যার মাধ্যমে আমরা আমাদের সাইটের ইউজারদের রিভিউ নিতে পারবো । তাই আসুন আজ ASP.NET Web Forms দিয়ে ভোটিং অথবা পোল লিস্ট বানানো শিখে নেই ।

ভোটিং লিস্ট তৈরী
ভোটিং লিস্ট বানানো কে ArrayList ও বলা হয়ে থাকে । ArrayList হলো অনেকগুলো একক ডাটার মানের আলাদা আলাদা কালেককশন । আসুন আমরা চারটি দেশের নাম দিয়ে ArrayList তৈরী করলে তার কোডগুলো কেমন হবে ।

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add(“Norway”)
mycountries.Add(“Sweden”)
mycountries.Add(“France”)
mycountries.Add(“Italy”)
end if
end sub
</script>

যদি এটাতে ১৬টি দেশের নাম থাকতো কিন্তু আমরা প্রথম চারটিকে দেখাতে চাইতাম তাহলে এর সাথে TrimToSize() কোড যোগ করতে হত । তাহলে কোডটি কেমন হত দেখা যাকঃ

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add(“Norway”)
mycountries.Add(“Sweden”)
mycountries.Add(“France”)
mycountries.Add(“Italy”)
mycountries.TrimToSize()
end if
end sub
</script>

আপনি Sort() মেথড ব্যবহার করে alphabetically অথবা numerically সাজাতে পারেন ।

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add(“Norway”)
mycountries.Add(“Sweden”)
mycountries.Add(“France”)
mycountries.Add(“Italy”)
mycountries.TrimToSize()
mycountries.Sort()
end if
end sub
</script>

আপনি যদি লিস্টটা উলটো করে সাজাতে চান তাহলে Sort() ট্যাগের পর Reverse() মেথড ব্যবহার করতে পারেন ।

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add(“Norway”)
mycountries.Add(“Sweden”)
mycountries.Add(“France”)
mycountries.Add(“Italy”)
mycountries.TrimToSize()
mycountries.Sort()
mycountries.Reverse()
end if
end sub
</script>

ArrayList এ ডাটা বাইন্ডিং
ArrayList স্বয়ংক্রিয়ভাবে নিম্নলিখিত ধরণের টেক্সট এবং মান বের করতে পারে ।

asp:RadioButtonList
asp:CheckBoxList
asp:DropDownList
asp:Listbox

RadioButtonList এ ডাটা বাইন্ডিং এর জন্য আগে আপনাকে .aspx পেজে RadioButtonList কন্ট্রোল তৈরী করে নিতে হবে ।

<html>
<body>

<form runat=”server”>
<asp:RadioButtonList id=”rb” runat=”server” />
form>

</body>
</html>

তারপর নিচের স্ক্রিপ্ট যোগ করে নিতে হবে ।

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New ArrayList
mycountries.Add(“Norway”)
mycountries.Add(“Sweden”)
mycountries.Add(“France”)
mycountries.Add(“Italy”)
mycountries.TrimToSize()
mycountries.Sort()
rb.DataSource=mycountries
rb.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:RadioButtonList id=”rb” runat=”server” />
</form>

</body>
</html>

এভাবে আমরা বিভিন্ন কোড যোগ করে আমাদের পোলকে বিভিন্ন ভাবে সাজাতে পারি । এভাবে আপনি নিজেই প্র্যাকটিস করে আপনার মত করে সাজিয়ে নিন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৯]:: ASP.NET Web Forms দিয়ে ডাটা বাইন্ডিং করা

ASP.NET টিউটোরিয়াল :[পর্বঃ ৯]:: ASP.NET Web Forms দিয়ে ডাটা বাইন্ডিং করা

লেখকঃ মোস্তাফিজুর ফিরোজ ।

গত দুই পর্বে আমরা কি শিখেছিলাম মনে আছে ? মনে না থাকলে একবার দেখে আসুন । থাক এত কষ্ট করতে হবে না, আমি মনে করাই দিচ্ছি । কিন্তু এই পর্বে আপনাকে খুব মনোযোগ দিতে হবে কিন্তু । আজকের পর্বটা খুব গুরুত্বপূর্ণ কিন্তু । তার আগে মনে করায় দেয় আগের দুই পর্বে আমরা TextBox এবং পুশ বাটন বানানো শিখেছিলাম । আজ আমরা ASP.NET Web Forms দিয়ে ডাটা বাইন্ডিং শিখবো ।

ডাটা বাইন্ডিং কি ?
আসলেই তাইতো ডাটা বাইন্ডিং কি জিনিস আবার ? খায় নাকি মাথায় দিতে হয়? :P আমরা ওয়েব ডিজাইন বিষয়ের ভিতরে আছি তাহলে খাওয়া বা মাথায় দেওয়ার বিষয় আসছে কেনো তাই নাহ? তাহলে জেনে নেই আগে ডাটা বাইন্ডিং টা কি । আমরা ডাটা বাইন্ডিং কে সাধারণতঃ লিস্ট পূরণ করার কাজে ব্যবহার করে থাকি । এই ডাটা গুলো কোনো ডাটাবেজ, XML file অথবা কোনো স্ক্রিপ্ট থেকে সংগ্রহ করা হয়ে থাকে ।

ডাটা বাইন্ডিং কি কি সাপোর্ট করে?
এবার আসুন জেনে নেই ডাটা বাইন্ডিং কি কি সাপোর্ট করে থাকে । ডাটা বাইন্ডিং নিম্নের কনট্রোল লিস্টগুলোকে নিয়ন্ত্রণ করতে ব্যবহার করা হয়ে থাকে ।

asp:RadioButtonList
asp:CheckBoxList
asp:DropDownList
asp:Listbox

এই সকল আইটেমগুলোকে আরেকটি asp:ListItem controls নামে নিম্নলিখিতভাবে নিয়ন্ত্রণ করা হয়ে থাকে ।

<html>
<body>

<form runat=”server”>
<asp:RadioButtonList id=”countrylist” runat=”server”>
<asp:ListItem value=”N” text=”Norway” />
<asp:ListItem value=”S” text=”Sweden” />
<asp:ListItem value=”F” text=”France” />
<asp:ListItem value=”I” text=”Italy” />
</asp:RadioButtonList>
</form>

</body>
</html>

ডাটা বাইন্ডিং এর জন্য আমরা কোনো ডাটাবেজ, XML file অথবা কোনো স্ক্রিপ্ট থেকে আলাদা আলাদা ভাবে সংগ্রহ করে থাকি । ইমপোর্টেড সোর্স থেকে ডাটা সংগ্রহ করা হলে আমরা এইচটিএমএল থেকে ডাটাগুলোকে কোনো পরিবর্তন ছাড়া আলাদা করে সংগ্রহ করতে পারি ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৮]:: ASP.NET Web Forms দিয়ে পুশ বাটন বানানো

ASP.NET টিউটোরিয়াল :[পর্বঃ ৮]:: ASP.NET Web Forms দিয়ে পুশ বাটন বানানো
লেখকঃ মোস্তাফিজুর ফিরোজ ।

আগের পর্বে আমরা শিখছিলাম ASP.NET Web Forms দিয়ে TextBox বানানো । আর এই পর্বে আমরা দেখবো ASP.NET Web Forms দিয়ে কিভাবে পুশ বাটন বানানো যায় ।

বাটন কনট্রোল
বাটন কনট্রোল হলো একটি পুশ বাটন দেখানো । পুশ বাটন হলো একটি সাবমিট বাটন অথবা একটি কমান্ড বাটন তৈরী করা । ডিফল্টভাবে একে সাবমিট বাটন বলে ।
সাবমিট বাটনের কোনো কমান্ড নাম থাকে না এবং এটা ক্লিক করা হলে সার্ভারের পরের পেজে নিয়ে যেতে সাহায্য করে । যখন বাটনটা ক্লিক করা হয় তখন ইভেন্ট হ্যান্ডেলার তার কাজের পারফরমেন্স দেখাতে সক্ষম হয় ।

কিন্তু কমান্ড বাটনের একটা কমান্ড নাম থাকে এবং এটা একটা পেজে অনেকগুলো বাটন তৈরিতে সাহায্য করে থাকে ।

আসুন একটা উদাহরণের সাহায্যে বুঝে নেই ।

<html>
<body>

<form runat=”server”>
<asp:Button id=”b1″ Text=”Submit” runat=”server” />
form>

</body>
</html>

পুশ বাটনে স্ক্রিপ্ট যোগ করা
সাধারণত বাটনে ক্লিক করে ফর্ম সাবমিট করা হয় । আসুন তাহলে এবার একটা বাটনে একটি TextBox কন্ট্রোল, একটি বাটন কন্ট্রোল এবং একটি লেবেল কন্ট্রোল যোগ করা হলে স্ক্রিপ্টটি কেমন দেখায় ।

<script runat=”server”>
Sub submit(sender As Object, e As EventArgs)
lbl1.Text=”Your name is ” & txt1.Text
End Sub
</script>

<html>
<body>

<form runat=”server”>
Enter your name:
<asp:TextBox id=”txt1″ runat=”server” />
<asp:Button OnClick=”submit” Text=”Submit” runat=”server” />
<p><asp:Label id=”lbl1″ runat=”server” /></p>
</form>

</body>
</html>

উপরের কোড দুটো ভালভাবে খেয়াল করলে আমরা আসল পার্থক্য বুঝতে পারবো । এটার সাথে আগের TextBox বানানোর সময় আমরা যেমন স্ক্রিপ্ট যোগ করছিলাম তার সাথে অনেক মিল আছে । তাই একটু চেষ্টা করলেই সব ভালভাবে শিখে ফেলতে পারবেন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৭]:: ASP.NET Web Forms দিয়ে TextBox বানানো

ASP.NET টিউটোরিয়াল :[পর্বঃ ৭]:: ASP.NET Web Forms দিয়ে TextBox বানানো
লেখকঃ মোস্তাফিজুর ফিরোজ ।

আমরা চাই আমাদের সাইটে একটা TextBox থাকুক যেখানে আমাদের ইউজাররা তাদের প্রশ্ন অথবা কোনো সমস্যা আমাদেরকে টেক্স আকারে মেসেজ করতে পারে । তাই আজকে আমরা শিখবো ASP.NET Web Forms দিয়ে TextBox কনট্রোল করে কিভাবে TextBox বানানো যায় ।

TextBox কনট্রোল কি?
TextBox কনট্রোল হলো একটি TextBox তৈরী করা যার সাহায্যে ইউজাররা টেক্সট পাঠাতে পারে । TextBox কনট্রোল এর জন্য আপনাকে কিছু এট্রিবিউট এবং প্রোপার্টিজ ব্যবহার করতে হবে । আসুন একটা কোডের উদাহরণ দেই তাহলেই বুঝতে পারবেন ।

<html>
<body>

<form runat=”server”>

A basic TextBox:
<asp:TextBox id=”tb1″ runat=”server” />
<br /><br />

A password TextBox:
<asp:TextBox id=”tb2″ TextMode=”password” runat=”server” />
<br /><br />

A TextBox with text:
<asp:TextBox id=”tb4″ Text=”Hello World!” runat=”server” />
<br /><br />

A multiline TextBox:
<asp:TextBox id=”tb3″ TextMode=”multiline” runat=”server” />
<br /><br />

A TextBox with height:
<asp:TextBox id=”tb6″ rows=”5″ TextMode=”multiline”
runat=”server” />
<br /><br />

A TextBox with width:
<asp:TextBox id=”tb5″ columns=”30″ runat=”server” />

form>

</body>
</html>

এই কোডটা একটু ভালভাবে পর্যবেক্ষণ করলেই বুঝতে পারবেন ।

স্ক্রিপ্ট যোগ করা
আমরা চাইলে এই TextBox এর ভিতরে অনেকগুলো স্ক্রিপ্ট যোগ করতে পারি । আসুন তাহলে আর ভিতর একটি TextBox কন্ট্রোল, একটি বাটন কন্ট্রোল এবং একটি লেবেল কন্ট্রোল যোগ করতে চাইলে স্ক্রিপ্টটা কেমন হবে ।

<script runat=”server”>
Sub submit(sender As Object, e As EventArgs)
lbl1.Text=”Your name is ” & txt1.Text
End Sub
</script>

<html>
<body>

<form runat=”server”>
Enter your name:
<asp:TextBox id=”txt1″ runat=”server” />
<asp:Button OnClick=”submit” Text=”Submit” runat=”server” />
<p><asp:Label id=”lbl1″ runat=”server” /></p>
</form>

</body>
</html>

এই স্ক্রিপ্টের ভিতর একটি TextBox কন্ট্রোল, একটি বাটন কন্ট্রোল এবং একটি লেবেল কন্ট্রোল যোগ করা আছে । আপনি কোডগুলো ভালভাবে দেখলে বুঝতে পারবেন ।

এবার আসুন তাইলে শুধু একটি TextBox কন্ট্রোল এবং একটি লেবেল কন্ট্রোল যোগ করলে স্ক্রিপ্টটা কেমন হবে ।

<script runat=”server”>
Sub change(sender As Object, e As EventArgs)
lbl1.Text=”You changed text to ” & txt1.Text
End Sub
</script>

<html>
<body>

<form runat=”server”>
Enter your name:
<asp:TextBox id=”txt1″ runat=”server”
text=”Hello World!”
ontextchanged=”change” autopostback=”true”/>
<p><asp:Label id=”lbl1″ runat=”server” /></p>
</form>

</body>
</html>

আপনি যখন এই .aspx ফাইলের TextBox মান পরিবর্তন করবেন অথবা TextBox এর বাইরে ক্লিক করবেন অথবা Tab key চাপবেন তখন এই সাবরুটিনের মানগুলো সম্পাদন করে দেখাবে ।

উপরের উদাহরণ দুটো একটু ভালভাবে খেয়াল করলে আমাদের কোডগুলো বুঝতে হবে । তাই একটু সময় বেশি নিয়ে ভালভাবে চর্চা করতে থাকুন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৬]:: ASP.NET Web Forms দিয়ে একসাথে ফর্মের অনেক কোডের নিয়ন্ত্রণ

ASP.NET টিউটোরিয়াল :[পর্বঃ ৬]:: ASP.NET Web Forms দিয়ে একসাথে ফর্মের অনেক কোডের নিয়ন্ত্রণ
লেখকঃ মোস্তাফিজুর ফিরোজ ।

গত পর্বে আমরা শিখেছিলাম ASP.NET Web Forms দিয়ে এইচটিএমএল ফর্ম ট্যাগের ব্যবহার । আজ আমরা শিখবো একসাথে ফর্মের অনেক কোডের নিয়ন্ত্রণ । এজন্য আগে আপনাকে ViewState এর নিয়ন্ত্রণ সম্পর্কে জানতে হবে ।

ViewState এর নিয়ন্ত্রণ
যখন একটি ফর্ম classic ASP আকারে নিবেদন করা হয় তখন ফর্মের সকল মান চলে যায় । ধরুন আপনি একটি ফর্মের সাথে অনেক তথ্য যোগ করে পাঠালেন আর এরর রিপোর্ট আসলো । তাহলে বুঝতেই পারছেন আপনার কেমন মেজাজ গরম হবে । আপনার মেজাজ গরম না হলেও আমার কিন্তু খুব মেজাজ গরম হবে । তাই আবার ব্যাক করে এসে দেখলেন আবার সব ফর্ম পূরণ করা লাগছে । তাহলে বুঝতে হবে এই সাইট আপনার ViewState পুরাপুরি নিয়ন্ত্রণ করতে পারেনি ।

আবার অনেক সাইটে দেখবেন এমন এরর রিপোর্ট দেখালেও ব্যাক করলে ফর্মে আপনার পূরণ করা সকল তথ্য দেখতে পারবেন । এটা কে করলো? তাইতো । খুব খুশি তাই নাহ? এটা ঐ পেজের ASP .NET ধারণ করে রেখেছে । তার মানে ঐ পেজের ViewState পুরাপুরি নিয়ন্ত্রণ করতে সক্ষম হয়েছে । ঐ পেজে একটা <form runat=”server”> ট্যাগ হিডেন করা আছে যা আপনার সকল তথ্য সংরক্ষণ করে রেখেছে । তাহলে আসুন দেখি ঐ পেজের সোর্স কোড কেমন হয়ঃ

<form name=”_ctl0″ method=”post” action=”page.aspx” id=”_ctl0″>
<input type=”hidden” name=”__VIEWSTATE”
value=”dDwtNTI0ODU5MDE1Ozs+ZBCF2ryjMpeVgUrY2eTj79HNl4Q=” />

…..some code

form>

ViewState এর নিয়ন্ত্রণ হলো ASP.NET Web Forms এর ডিফল্ট সেটিংস । আপনি যদি এটাকে নিয়ন্ত্রণ না করতে চান তাহলে .aspx পেজের উপরে একটি <%@ Page EnableViewState=”false” %> অথবা EnableViewState=”false” এই ট্যাগ যোগ করতে পারেন ।

তাহলে দেখেন পুরাতন পদ্ধতিতে কোডগুলো কেমন দেখায়ঃ

<html>
<body>

<form action=”demo_classicasp.aspx” method=”post”>
Your name: <input type=”text” name=”fname” size=”20″>
<input type=”submit” value=”Submit”>
</form>
<%
dim fname
fname=Request.Form(“fname”)
If fname<>”” Then
Response.Write(“Hello ” & fname & “!”)
End If
%>

</body>
</html>

এটা হল পুরাতন পদ্ধতি যাতে আপনি যখন সাবমিট করবেন তখন এর ভিতরকার কোডগুলো অন্তর্নিহিত থাকবে ।

তাহলে এইবার নতুন পদ্ধতিটা দেখে নেই যে কেমন হবে কোডটাঃ

<script runat=”server”>
Sub submit(sender As Object, e As EventArgs)
lbl1.Text=”Hello ” & txt1.Text & “!”
End Sub
</script>

<html>
<body>

<form runat=”server”>
Your name: <asp:TextBox id=”txt1″ runat=”server” />
<asp:Button OnClick=”submit” Text=”Submit” runat=”server” />
<p><asp:Label id=”lbl1″ runat=”server” /></p>
</form>

</body>
</html>

আপনি এই নতুন পুরাতন দুই পদ্ধতিতেই একটি ফর্মের সকল কোড নিয়ন্ত্রণ করতে পারবেন । যেটা আপনার সুবিধা হবে সেটাই প্র্যাকটিস করবেন । তাহলে আজ এটাই শিখতে থাকুন ভালো করে ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৫]:: ASP.NET Web Forms দিয়ে এইচটিএমএল ফর্ম ট্যাগের ব্যবহার

ASP.NET টিউটোরিয়াল :[পর্বঃ ৫]:: ASP.NET Web Forms দিয়ে এইচটিএমএল ফর্ম ট্যাগের ব্যবহার
লেখকঃ মোস্তাফিজুর ফিরোজ ।

কি খবর সবার? আজ আমরা ASP.NET Web Forms দিয়ে এইচটিএমএল ফর্ম ট্যাগের ব্যবহার শিখবো ।

ASP.NET Web Forms দিয়ে এইচটিএমএল ফর্ম ট্যাগ
সকল সার্ভারের কন্ট্রোলের জন্য একটি <form> ট্যাগ ব্যবহার করা হয় । আর এই

ট্যাগের ভিতর একটা runat=”server” উপাদান থাকে । এই runat=”server” নির্দেশ করে এই ফর্মটা অবশ্যই সার্ভারে প্রসেসড হবে । এটা আরো নির্দেশ করে যে সার্ভারে থাকা সকল স্ক্রিপ্ট এই সার্ভারেই নিয়ন্ত্রিত হবে ।

<form runat=”server”>

…HTML + server controls

</form>

এই ফর্মের সবকিছুই পেজ নিজে নিয়ন্ত্রিত করবে । আপনি চেঞ্জ করে দিলেও এটা ওর নিজের মতই কাজ করবে। আপনি যদি নাম এবং আইডি এট্রিবিউট উল্লেখ করে না দেন তাহলে ASP.NET নির্ধারণ করে নিবে ।

একটি .aspx পেজে মাত্র একটি

কন্ট্রোল ট্যাগ থাকবে ।

আপনি যদি .aspx পেজের সোর্স কোডে দেখেন ফর্মের কোনো নাম, কাজ অথবা আইডি এট্রিবিউট উল্লেখ করা না থাকে তাহলে এটাতে ASP.NET নিজে অ্যাড করে নিবে যা দেখতে নিচের কোডের মত হবে ।

<form name=”_ctl0″ method=”post” action=”page.aspx” id=”_ctl0″>

…some code

</form>

একটি ফর্ম সাবমিট
একটি বাটনে ক্লিকের মাধ্যমে আপনি সাধারণত ফর্ম সাবমিট করতে পারবেন । বাটন সার্ভার কোডটি নিচের মত হয়ঃ

<asp:Button id=”id” text=”label” OnClick=”sub” runat=”server” />

এখানে id এট্রিবিউট এই বাটনের জন্য একটা ইউনিক নাম এবং text এট্রিবিউট একটি নির্দিষ্ট লেবেলকে নির্দেশ করে । আর OnClick ইভেন্ট একটি subroutine কে সম্পাদিত হওয়ার জন্য নির্দেশ করবে ।

আজ তাহলে ফর্ম সাবমিট পর্যন্তই থাক । পরের পর্বে শিখবো আরো নতুন কিছু ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৪]:: ASP.NET Web Forms দিয়ে ইভেন্ট হ্যান্ডেল

ASP.NET টিউটোরিয়াল :[পর্বঃ ৪]:: ASP.NET Web Forms দিয়ে ইভেন্ট হ্যান্ডেল
লেখকঃ মোস্তাফিজুর ফিরোজ ।

কেমন আছেন সবাই? টিউটোরিয়াল প্র্যাকটিস সবার কেমন চলছে ? আশাকরি অনেক ভালো । আর না বুঝতে পারলে কমেন্ট করতে কিন্তু ভুলবেন না । তাহলে কিন্তু না বুঝতে পারলে আপনারই ক্ষতি বেশি হবে । আজ আমি দেখাবো ASP.NET Web Forms দিয়ে কিভাবে ইভেন্ট হ্যান্ডেল করা যায় ।

ইভেন্ট হ্যান্ডেল কি?
আসলেই তো ইভেন্ট হ্যান্ডেলটা কি? হুম । টাইটেল টায় যদি না বুঝেন আগে তাহলে ভিতরে কি শেখানো হবে তা বুঝবেন কিভাবে তাই নাহ ।
একটা ইভেন্টে দেয়া কোডগুলোকে রুটিন মাফিক সম্পাদিত করাই হলো ইভেন্ট হ্যান্ডেল । আর তাই এই ASP.NET Web Forms কে এখানে বলা হয় ইভেন্ট হ্যান্ডেলার । তাই একটি ইভেন্ট হ্যান্ডেল হলো একটি সাবরুটিন(subroutine) ।

আসুন একটা কোড এর ঊদাহরণ থেকে দেখিঃ

<%
lbl1.Text=”The date and time is ” & now()
%>

<html>
<body>
<form runat=”server”>
<h3><asp:label id=”lbl1″ runat=”server” /></h3>
form>
</body>
</html>

এখন যদি এই কোডটা আপনাকে দেখিয়ে বলা হয় এই কোডটা কখন সম্পাদিত হবে তাহলে এর উত্তর অবশ্যই হবে আপনি জানেন না তাই নাহ । :P
ভয় নেই আপনাকে আর না জেনে থাকা লাগবে না । আস্তে আস্তে সব বুঝিয়ে দিচ্ছি ।

পেজ লোড ইভেন্ট
পেজ লোড (Page_Load) ইভেন্ট হলো অনেকগুলো ইভেন্টের সমষ্টি যেটা ASP.NET কে বুঝতে সাহায্য করে থাকে । যখন একটি পেজ লোড হয় তখন পেজ লোড (Page_Load) ইভেন্ট কাজ শুরু করে দেয় । ASP.NET অটোমেটিক্যালি তার সাবরুটিন পেজ লোড (subroutine Page_Load) কে সংকেত প্রেরণ করে এবং তার কোডগুলো এর সাথে সম্পাদিত হয় ।
আসুন একটা উদাহরণ দেখি তাহলেই বুঝতে পারবেন ।

<script runat=”server”>
Sub Page_Load
lbl1.Text=”The date and time is ” & now()
End Sub
</script>

<html>
<body>
<form runat=”server”>
<h3><asp:label id=”lbl1″ runat=”server” /></h3>
</form>
</body>
</html>

মনে রাখবেন পেজ লোড ইভেন্ট অন্য কোনো অবজেক্টকে রেফারেন্স দেয় না এবং এই ইভেন্টগুলোর একটা রুটিন করে সম্পাদন করে, তাই এদের ভিতর কোনো সমস্যা হয় না ।

Page.IsPostBack Property
যখনই পেজ লোড করা হয় তখনই পেজ লোড সাবরুটিন প্রতিবার রান করে । যদি আপনি এই Page_Load subroutine কে মাত্র প্রথমবারের জন্য রান করাতে চান তাহলে আপনাকে এই কোডের ভিতর Page.IsPostBack property ব্যবহার করতে হবে । যদি এই Page.IsPostBack property ভুল হয় তাহলে পেজটি শুধু প্রথমবার লোড নিবে । আর যদি ঠিক হয় তাহলে পেজটি সার্ভারে পোস্টেড ব্যাক করবে ।
একটা উদাহরণ থেকেই না হয় বুঝি ঃ

<script runat=”server”>
Sub Page_Load
if Not Page.IsPostBack then
lbl1.Text=”The date and time is ” & now()
end if
End Sub

Sub submit(s As Object, e As EventArgs)
lbl2.Text=”Hello World!”
End Sub
</script>

<html>
<body>
<form runat=”server”>
<h3><asp:label id=”lbl1″ runat=”server” /></h3>
<h3><asp:label id=”lbl2″ runat=”server” /></h3>
<asp:button text=”Submit” onclick=”submit” runat=”server” />
</form>
</body>
</html>

এই উদাহরণে যখন পেজটি লোড নিবে তখন “The date and time is….” ম্যাসেজটি প্রথমবার লোড নিবে । যখন একজন ইউজার সাবমিট বাটনে ক্লিক করবে তখন “Hello World!” ম্যসেজটিকে সাবরুটিন লোড হয়ে দ্বিতীয় লেবেলে দেখাবে । কিন্তু প্রথম লেবেলের তারিখ এবং সময়ের পরিবর্তন করবে না । তাহলে এর আসল কাজ টা বুঝতে পারলেন । দেখা হবে পরের পোস্টে ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ৩]:: ASP.NET Web Forms দিয়ে সার্ভার কনট্রোল

ASP.NET টিউটোরিয়াল :[পর্বঃ ৩]:: ASP.NET Web Forms দিয়ে সার্ভার কনট্রোল
লেখকঃ মোস্তাফিজুর ফিরোজ ।

আজ আমরা দেখবো ASP.NET Web Forms দিয়ে কিভাবে সার্ভার কনট্রোল করা হয় । যেটার মাধ্যমে আমরা বুঝতে পারবো Classic ASP এর তুলনায় ASP.NET কতটা শক্তিশালী ।

সার্ভার কনট্রোল হলো ট্যাগ যেটা সার্ভারকে বুঝাতে সাহায্য করে ।

Classic ASP এর লিমিটেশনঃ

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

এই কোড কিন্তু আগের পর্বেই দেখিয়েছি । এই কোডই Classic ASP এর লিমিটেশন তুলে ধরবে । যেখানে আউটপুট দেখানোর দরকার হয় সেখানে code block প্রতিস্থাপন করা হয় । এই Classic ASP তে executable code কে এইচটিএমএল থেকে আলাদা করা যায় না । এটাই পেজকে পড়া এবং নিয়ন্ত্রণ করাকে আরো বেশি কঠিন করে ফেলে ।

ASP.NET দিয়ে সার্ভার কনট্রোল
ASP.NET সার্ভারের “spaghetti-code” সমস্যার সমাধান করে । আগেই বলেছি, সার্ভার কনট্রোল হলো ট্যাগ যেটা সার্ভারকে বুঝাতে সাহায্য করে । তিন প্রকারের সার্ভার কন্ট্রোল আছে ।
১। HTML Server Controls – Traditional HTML tags
২। Web Server Controls – New ASP.NET tags
৩। Validation Server Controls – For input validation

ASP.NET দিয়ে এইচটিএমএল সার্ভার কনট্রোল
এইচটিএমএল সার্ভার কনট্রোল হলো এইচটিএমএল ট্যাগ যেটা সার্ভারকে বুঝাতে সাহায্য করে ।
ASP.NET এ এইচটিএমএল এলিমেন্টস ফাইলগুলো টেক্সট হিসেবে আচরণ করে । এই এলিমেন্টসকে প্রোগ্রাম হিসেবে কাজ করানোর জন্য =”server” ট্যাগ এইচটিএমএল এলিমেন্টস এ জোগ করা হয় । এই ট্যাগ সার্ভার কন্ট্রোল করার জন্য যোগ করা হয় । এই ট্যাগটা run time এ সুনিপুনভাবে সার্ভার কনট্রোল করে ।

<script runat=”server”>
Sub Page_Load
link1.HRef=”http://www.firoz.me”
End Sub
</script>

<html>
<body>

<form runat=”server”>
<a id=”link1″ runat=”server”>Visit Firoz.me!</a>
form>

</body>
</html>

উপরের executable code এইচটিএমএল এর সাথে রুপান্তরিত হয় ।

ASP.NET দিয়ে ওয়েব সার্ভার কনট্রোল
ওয়েব সার্ভার কনট্রোল হলো স্পেশাল ASP.NET ট্যাগ যেটা সার্ভারকে বুঝাতে সাহায্য করে ।
ওয়েব সার্ভার তৈরির জন্য একটা syntax ব্যবহার করা হয় ।
<asp:control_name id=”some_id” runat=”server” />

তাহলে কোডটি দাড়াচ্ছে ঃ
<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>

উপরের কোডে আমরা .aspx ফাইলে একটা বাটন সার্ভার কন্ট্রোল ঘোষণা করা হয় । এরপর আমরা একটা event handler তৈরী করি যেটা Click event কে টেক্সট থেকে একটা বাটনে পরিণত করে ।

ASP.NET দিয়ে সার্ভার কনট্রোল বৈধকরণ
সার্ভার কনট্রোল বৈধকরণ করার জন্য নতুন করে syntax যোগ করতে হয় ।
<asp:control_name id=”some_id” runat=”server” />

তাহলে কোডটি দাড়াচ্ছে ঃ

<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=”The value must be from 1 to 100!”
runat=”server” />
</p>
</form>

</body>
</html>

কি মাথা ঘুরছে তাই নাহ? তাহলে আজ এই পর্যন্তই থাক । এটুকুই ভালভাবে প্রাকটিস করতে থাকুন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ২]:: Web Forms দিয়ে এইচটিএমএল পেজ তৈরী

ASP.NET টিউটোরিয়াল :[পর্বঃ ২]:: Web Forms দিয়ে এইচটিএমএল পেজ তৈরী

লেখকঃ মোস্তাফিজুর ফিরোজ ।

 

গত পর্বে আমরা ASP.NET এর ব্যাসিক ধারণা নিয়েছিলাম । আজ আমরা শিখবো কিভাবে ASP.NET Web Forms দিয়ে এইচটিএমএল পেজ তৈরী করা যায় ।

Hello Firoz পেজ তৈরী
আমরা আগে দেখিয়েছিলাম এইচটিএমএল দিয়ে কিভাবে একটা ওয়েবপেজ তৈরী করতে হয় । এইচটিএমএল আর ASP.NET একইভাবে কাজ করে । একটা সিম্পল ASP.NET পেজ এবং একটি এইচটিএমএল পেজ দেখতে একই রকম । আসেন তার একটা পরীক্ষা করে নিজেই দেখে নেই ।

<html>
<body bgcolor=”yellow”>
<center>
<h2>Hello Firoz</h2>
</center>
</body>
</html>

এবার এটাকে নোটপ্যাড দিয়ে লিখে firstpage.htm নামে সেভ করি । এবার এটাকে আপনার ব্রাউজার এর সাহায্যে ওপেন করে দেখুন কেমন দেখায় ।

আবার উপরের কোডটুকু নোটপ্যাডে আবার লিখে firstpage.aspx ফরমেটে সেভ করুন । তারপর আবার এটাকে আপনার ব্রাউজার দিয়ে ওপেন করে দেখুন কেমন দেখায়। পার্থক্যটা আপনি নিজেই ভালো বুঝতে পারবেন ।

এভাবে খুব সহজে আমরা একটা এইচটিএমএল পেজকে ASP.NET পেজে কনভার্ট করতে পারি ।

এটা কিভাবে কাজ করে?
গঠনগত দিক দিয়ে একটি ASP.NET পেজ এবং একটি এইচটিএমএল পেজ একই ।
একটি এইচটিএমএল পেজের শেষের এক্সটেনশন থাকে .htm । যখন একটি ব্রাউজার সার্ভার একটি এইচটিএমএল পেজ ওপেন করতে যায় তখন সার্ভার কোনো মডিফিকেশন ছাড়াই ঐ পেজটিকে ব্রাউজারে পাঠিয়ে দেয় ।

অপরদিকে একটি ASP.NET পেজের শেষের এক্সটেনশন থাকে .aspx । যখন একটি ব্রাউজার সার্ভার একটি ASP.NET পেজ ওপেন করতে যায় তখন সার্ভার আগে executable code থাকলে সেটাকে প্রসেস করে তারপর তার রেজাল্ট ঐ ব্রাউজারে পাঠিয়ে দেয় । আর যদি কোনো executable code না থাকে তাহলে নরম্যালি রেজাল্ট দেখায় ।

এবার আমরা কিছু executable code যোগ করে static HTML pages এবং dynamic ASP pages এর পার্থক্য দেখবো । তার আগে জানি dynamic ASP কি । Active Server Pages (ASP) তৈরী হয়েছে কিছু বছর আগে যেটা HTML pages এর সাথে ব্যবহার করা হত । আগের ভার্সনের ASP কে বলা হত Classic ASP । ASP.NET পুরাপুরি Classic ASP এর সাথে সুসঙ্গত নয় । কিন্তু অধিকাংশ Classic ASP ভালভাবেই ASP.NET পেজের সাথে কাজ করে ।

Classic ASP দিয়ে ডায়নামিক পেজ তৈরী
ASP কিভাবে ডায়নামিক কনটেন্ট এর পেজকে দেখায় সেটা বুঝানোর জন্য আগের উদাহরণের সাথে আমরা কিছু executable code যোগ করবো ।
<html>
<body bgcolor=”yellow”>
<center>
<h2>Hello Firoz.me!</h2>
<p><%Response.Write(Now())%></p>
</center>
</body>
</html>

<% –%> এই ট্যাগের ভিতরকার কোড সার্ভারে সম্পাদিত হবে ।
Response.Write হলো ASP code । এটা এইচটিএমএল এর আউটপুট স্ট্রিমের সাথে কাজ করবে ।
Now() হল একটি ফাংশন যেটা সার্ভারের বর্তমান তারিখ এবং সময় দেখাবে ।
এটা পর্যবেক্ষণের জন্য আমরা dynpage.asp নামে সেভ করে ব্রাউজারে ওপেন করবো ।

ASP .NET দিয়ে ডায়নামিক পেজ তৈরী
নিচের কোডটুকু নোটপ্যাডে লিখে dynpage.aspx নামে সেভ করি ।

<html>
<body bgcolor=”yellow”>
<center>
<h2>Hello Firoz.me!</h2>
<p><%Response.Write(Now())%></p>
</center>
</body>
</html>

এবার এটা ব্রাউজারে ওপেন করে নিজেই পার্থক্যটা দেখি ।

ASP.NET vs Classic ASP
পূর্বের উদাহরণটা ASP.NET এবং Classic ASP এর তেমন কোনো পার্থক্য দেখাতে পারে না । আধুনিক উদাহরণে এদের কোনো পার্থক্য নেই ।

পরবর্তী পোস্টে আমরা দেখাবো Classic ASP এর তুলনায় ASP.NET কতটা শক্তিশালী । তত সময় আমাদের সাথেই থাকুন ।