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

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

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

ডাটা লিস্ট কনট্রোলে ডাটাসেট বাইন্ড করা
ডাটা লিস্ট কনট্রোল হলো রিপিটার কন্ট্রোলের মত, যেটা কন্ট্রোলের জন্য বাউন্ড করা লিস্টে রিপিটেড লিস্টগুলোকে দেখায় । কিন্তু ডাটা লিস্ট কনট্রোল ডাটা আইটেমের চারিদিকে নিজে নিজে একটা টেবিল তৈরি করে থাকে । ডাটা লিস্ট কনট্রোল সাধারণত ডাটাবেজ টেবিল, XML file অথবা অনেকগুলো আইটেম এর সাথে বাউন্ড হয়ে থাকে ।
এখানে উদাহরণ হিসেবে “cdcatalog.xml” ফাইলকে দেখাচ্ছি ।

xml version=”1.0″ encoding=”ISO-8859-1″?>

<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
<cd>
<title>Eros</title>
<artist>Eros Ramazzotti</artist>
<country>EU</country>
<company>BMG</company>
<price>9.90</price>
<year>1997</year>
</cd>
</catalog>

এটাকে এখন cdcatalog.xml এই নামে সেভ করে ওপেন করেই দেখুন না ।

প্রথমে “System.Data” নামে কোনো নেমস্পেস কে ইম্পোর্ট করতে হবে । ডাটাসেট অবজেক্ট এর কাজের জন্য এই নেমস্পেসকে দরকার পড়বে । .aspx পেজের সবার উপরে নিচের কোডটুকু যোগ করে নেই ।

<%@ Import Namespace=”System.Data” %>

তারপর XML file এর জন্য একটা ডাটাসেট তৈরী করে নেই । পেজটি যখন প্রথম লোড নিবে তখন ডাটাসেট থেকে XML file টি লোড নিবে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
end if
end sub

এখন আমরা .aspx page এ আরেকটা রিপিটার কনট্রোল তৈরী করবো । এর ভিতরে <HeaderTemplate> টি প্রথমে এবং একবারই সম্পাদন করবে । অবশ্য <ItemTemplate> এলিমেন্ট টি ডাটাসেটের রেকর্ড এর উপর নির্ভর করে রিপিট হতে পারে । কিন্তু <FooterTemplate> এলিমেন্ট টি কিন্তু একবারই সম্পাদিত হয়ে নিচের মত আউটপুট দিবে ।

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog” runat=”server”>

<HeaderTemplate>

</HeaderTemplate>

<ItemTemplate>

</ItemTemplate>

<FooterTemplate>

</FooterTemplate>

DataList>
form>

</body>
</html>

তারপর আমরা ডাটাসেট তৈরির জন্য স্ক্রিপ্ট যোগ করবো । এটাকে তখন রিপিটার কনট্রোলের mycdcatalog ডাটাসেটের সাথে বাইন্ড করবো । তারপর <HeaderTemplate> ব্যবহার করবো হেডার টেবিল দেখানোর জন্য, <ItemTemplate> ব্যবহার করবো ডাটা আইটেম দেখানোর জন্য এবং <FooterTemplate> ব্যবহার করবো টেক্সট দেখানোর জন্য । ডাটা লিস্টে “both” অ্যাট্রিবিউট যোগ করে টেবিল বর্ডার দেখাতে সক্ষম হবো ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog”
gridlines=”both” runat=”server”>

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</ItemTemplate>

<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>

DataList>
form>

</body>
</html>

স্টাইলের ব্যবহারঃ
আপনি আপনার ইচ্ছামত করে স্টাইল যোগ করে নিতে পারবেন ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog”
gridlines=”both” runat=”server”>

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</ItemTemplate>

<FooterTemplate>
Copyright Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

<AlternatingItemTemplate> এর ব্যবহার
<ItemTemplate> এলিমেন্টের পরিবর্তে আমরা <AlternatingItemTemplate> এলিমেন্ট ব্যবহার করতে পারি নিচের মত করে ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:DataList id=”cdcatalog”
runat=”server”
cellpadding=”2″
cellspacing=”2″
borderstyle=”inset”
backcolor=”#e8e8e8″
width=”100%”
headerstyle-font-name=”Verdana”
headerstyle-font-size=”12pt”
headerstyle-horizontalalign=”center”
headerstyle-font-bold=”True”
itemstyle-backcolor=”#778899″
itemstyle-forecolor=”#ffffff”
alternatingitemstyle-backcolor=”#e8e8e8″
alternatingitemstyle-forecolor=”#000000″
footerstyle-font-size=”9pt”
footerstyle-font-italic=”True”>

<HeaderTemplate>
My CD Catalog
</HeaderTemplate>

<ItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</ItemTemplate>

<AlternatingItemTemplate>
“<%#Container.DataItem(“title”)%>” of
<%#Container.DataItem(“artist”)%> –
$<%#Container.DataItem(“price”)%>
</AlternatingItemTemplate>

<FooterTemplate>
© Hege Refsnes
</FooterTemplate>

</asp:DataList>
</form>

</body>
</html>

আসলেই ডিজাইন টা হলো নিজের মনের মত । আপনি যদি কোডিং একটু ভালো বুঝতে পারেন তাহলে আপনার মনের মত করে সবকিছু সাজাতে পারবেন ।

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

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

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

রিপিটার কন্ট্রোলে ডাটাসেট বাইন্ড
রিপিটার কনট্রোল হল কন্ট্রোলে বাউণ্ড হওয়া লিস্টের রিপিট লিস্ট দেখানো । রিপিটার কনট্রোল সাধারণত ডাটাবেজ টেবিল, XML file অথবা অনেকগুলো আইটেম এর সাথে বাউন্ড হয়ে থাকে । এখন আমি দেখাবো XML file কে কিভাবে একটি রিপিটার কন্ট্রোলের সাথে বাইন্ড করা যায় ।
এখানে উদাহরণ হিসেবে “cdcatalog.xml” ফাইলকে দেখাচ্ছি ।

xml version=”1.0″ encoding=”ISO-8859-1″?>

<catalog>
<cd>
<title>Empire Burlesque</title>
<artist>Bob Dylan</artist>
<country>USA</country>
<company>Columbia</company>
<price>10.90</price>
<year>1985</year>
</cd>
<cd>
<title>Hide your heart</title>
<artist>Bonnie Tyler</artist>
<country>UK</country>
<company>CBS Records</company>
<price>9.90</price>
<year>1988</year>
</cd>
<cd>
<title>Greatest Hits</title>
<artist>Dolly Parton</artist>
<country>USA</country>
<company>RCA</company>
<price>9.90</price>
<year>1982</year>
</cd>
<cd>
<title>Still got the blues</title>
<artist>Gary Moore</artist>
<country>UK</country>
<company>Virgin records</company>
<price>10.20</price>
<year>1990</year>
</cd>
<cd>
<title>Eros</title>
<artist>Eros Ramazzotti</artist>
<country>EU</country>
<company>BMG</company>
<price>9.90</price>
<year>1997</year>
</cd>
</catalog>

এটাকে এখন cdcatalog.xml এই নামে সেভ করে ওপেন করেই দেখুন না ।

প্রথমে “System.Data” নামে কোনো নেমস্পেস কে ইম্পোর্ট করতে হবে । ডাটাসেট অবজেক্ট এর কাজের জন্য এই নেমস্পেসকে দরকার পড়বে । .aspx পেজের সবার উপরে নিচের কোডটুকু যোগ করে নেই ।

<%@ Import Namespace=”System.Data” %>

তারপর XML file এর জন্য একটা ডাটাসেট তৈরী করে নেই । পেজটি যখন প্রথম লোড নিবে তখন ডাটাসেট থেকে XML file টি লোড নিবে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
end if
end sub

এখন আমরা .aspx page এ আরেকটা রিপিটার কনট্রোল তৈরী করবো । এর ভিতরে <HeaderTemplate> টি প্রথমে এবং একবারই সম্পাদন করবে । অবশ্য <ItemTemplate> এলিমেন্ট টি ডাটাসেটের রেকর্ড এর উপর নির্ভর করে রিপিট হতে পারে । কিন্তু <FooterTemplate> এলিমেন্ট টি কিন্তু একবারই সম্পাদিত হয়ে নিচের মত আউটপুট দিবে ।

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>

</HeaderTemplate>

<ItemTemplate>

</ItemTemplate>

<FooterTemplate>

</FooterTemplate>

</asp:Repeater>
form>

</body>
</html>

তারপর আমরা ডাটাসেট তৈরির জন্য স্ক্রিপ্ট যোগ করবো । এটাকে তখন রিপিটার কনট্রোলের mycdcatalog ডাটাসেটের সাথে বাইন্ড করবো । তারপর <%#Container.DataItem(“fieldname”)%> মেথডের মাধ্যমে <ItemTemplate> section এর সাথে রিপিটার কনট্রোল এবং এইচটিএমএল ট্যাগের বাইণ্ড করবো ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>
<table border=”1″ width=”100%”>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
form>

</body>
</html>

<AlternatingItemTemplate> এর ব্যবহার
<ItemTemplate> এলিমেন্টের পরিবর্তে আমরা <AlternatingItemTemplate> এলিমেন্ট ব্যবহার করতে পারি নিচের মত করে ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>
<table border=”1″ width=”100%”>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</ItemTemplate>

<AlternatingItemTemplate>
<tr bgcolor=”#e8e8e8″>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</AlternatingItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</body>
</html>

<SeparatorTemplate> এর ব্যবহার
আবার <ItemTemplate> এলিমেন্টের পরিবর্তে আমরা <SeparatorTemplate> এলিমেন্ট ব্যবহার করতে পারি নিচের মত করে ।

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycdcatalog=New DataSet
mycdcatalog.ReadXml(MapPath(“cdcatalog.xml”))
cdcatalog.DataSource=mycdcatalog
cdcatalog.DataBind()
end if
end sub
</script>

<html>
<body>

<form runat=”server”>
<asp:Repeater id=”cdcatalog” runat=”server”>

<HeaderTemplate>
<table border=”0″ width=”100%”>
<tr>
<th>Title</th>
<th>Artist</th>
<th>Country</th>
<th>Company</th>
<th>Price</th>
<th>Year</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“title”)%></td>
<td><%#Container.DataItem(“artist”)%></td>
<td><%#Container.DataItem(“country”)%></td>
<td><%#Container.DataItem(“company”)%></td>
<td><%#Container.DataItem(“price”)%></td>
<td><%#Container.DataItem(“year”)%></td>
</tr>
</ItemTemplate>

<SeparatorTemplate>
<tr>
<td colspan=”6″><hr /></td>
</tr>
</SeparatorTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</body>
</html>

দেখলেন তো নিজের ইচ্ছামত কত রকমের ট্যাগ ব্যবহার করা যাচ্ছে । আপনি একটু ভালভাবে প্র্যাকটিস করলে নিজের মত করে পরিবর্তন করে ব্যবহার করতে পারবেন । তাহলে এবার একটু মেজাজ ঠান্ডা হয়েছে তো ?

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৩]:: ASP.NET Web Forms দিয়ে XML File তৈরী করে লিস্ট কনট্রোল

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

গত পর্বে আমরা ASP.NET Web Forms এর পোল লিস্টে SortedList Object এর ব্যবহার শিখেছিলাম । আজ আমরা শিখবো কিভাবে ASP.NET Web Forms দিয়ে XML File বাইন্ড করে লিস্ট কনট্রোল করা যায় ।

XML File
XML File কি সেটা আর নতুন করে বলার কিছুই নেই । যারা এইচটিএমএল ভালো শিখেছেন তারা আরো ভালো বুঝতে পারবেন । তাহলে আসুন “countries.xml” নামে আমরা একটা XML File তৈরী করি ।

xml version=”1.0″ encoding=”ISO-8859-1″?>

<countries>

<country>
<text>Norway</text>
<value>N</value>
</country>

<country>
<text>Sweden</text>
<value>S</value>
</country>

<country>
<text>France</text>
<value>F</value>
</country>

<country>
<text>Italy</text>
<value>I</value>
</country>

</countries>

এবার এটাকে ঐ নামে সেভ করে ব্রাউজার দিয়ে ওপেন করে দেখুন কেমন দেখায় ।

লিস্ট কনট্রোলে ডাটাসেট বাইন্ড করা
প্রথমে “System.Data” নামে কোনো নেমস্পেস কে ইম্পোর্ট করতে হবে । ডাটাসেট অবজেক্ট এর কাজের জন্য এই নেমস্পেসকে দরকার পড়বে । .aspx পেজের সবার উপরে নিচের কোডটুকু যোগ করে নেই ।

<%@ Import Namespace=”System.Data” %>

তারপর XML file এর জন্য একটা ডাটাসেট তৈরী করে নেই । পেজটি যখন প্রথম লোড নিবে তখন ডাটাসেট থেকে XML file টি লোড নিবে ।

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath(“countries.xml”))
end if
end sub

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

<html>
<body>

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

</body>
</html>

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

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath(“countries.xml”))
rb.DataSource=mycountries
rb.DataValueField=”value”
rb.DataTextField=”text”
rb.DataBind()
end if
end sub
</script>

<html>
<body>

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

</body>
</html>

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

<%@ Import Namespace=”System.Data” %>

<script runat=”server”>
sub Page_Load
if Not Page.IsPostBack then
dim mycountries=New DataSet
mycountries.ReadXml(MapPath(“countries.xml”))
rb.DataSource=mycountries
rb.DataValueField=”value”
rb.DataTextField=”text”
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 এর পোল লিস্টে SortedList Object এর ব্যবহার

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

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

SortedList Object কি?
SortedList Object হলো ArrayList object এবং Hashtable object এর সমন্বয় । এটাও key অথবা value এর জোড়া সংগ্রহ করে রাখে । Add() method এর মাধ্যমে আমরা SortedList Object এ আইটেম যোগ করতে পারি । TrimToSize() method এর মাধ্যমে SortedList তার ফাইনাল সাইজে পরিণত হয় । তাহলে কোডটা কেমন হয় একটু দেখে নেইঃ

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

ডাটা বাইন্ডিং
SortedList 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 SortedList
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 SortedList
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 এর পোল লিস্টে 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>

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