Category Archives: এ এস পি ডট নেট ওয়েব ফর্মস ঃ ASP.Net Web Forms

এ এস পি ডট নেট ওয়েব ফর্মস ঃ ASP.Net Web Forms

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>

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

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 কতটা শক্তিশালী । তত সময় আমাদের সাথেই থাকুন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ১] : ব্যাসিক ধারণা : ASP.NET Web Forms – Tutorial

ASP.NET টিউটোরিয়াল :[পর্বঃ১] : ব্যাসিক ধারণা

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

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

ASP.NET কি?
ASP.NET একটি ডেভেলপমেন্ট ফ্রেমওয়ার্ক । এটি এইচটিএমএল, সিএসএস, জাভাস্ক্রিপ্ট এবং সার্ভার স্ক্রিপ্ট দিয়ে ওয়েবপেজ তৈরিতে ব্যবহার করা হয় । যার সাহায্যে আপনি তৈরী করতে পারবেন পুরো একটি ওয়েবসাইট ।

ASP.NET কি সাপোর্ট করে ?
ASP.NET তিনটি ডেভেলপমেন্ট মডেল সাপোর্ট করে ।
১। Web Pages
২। MVC (Model View Controller)
৩। Web Forms

এখন আপাতত এই তিনটি মডেল এর নাম মনে রাখলেই চলবে । পরে এগুলো নিয়ে আরো বিস্তারিত আলোচনা করবো ।

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

Web Forms কি ?
Web Forms হলো তিনটি প্রোগ্রামিং মডেলের সমন্বয় । প্রোগ্রামিং মডেল তিনটি হলোঃ
১। ASP.NET web sites এবং web applications তৈরী ।
২। Web Pages
৩। MVC (Model, View, Controller)

Web Forms হলো সবচেয়ে পুরাতন প্রোগ্রামিং মডেল । এটা HTML, server controls এবং server code দিয়ে তৈরী করা ওয়েবপেজের চালনা করে থাকে ।
Web Forms সার্ভারে সংকলন এবং সম্পাদন করা থাকে । এটি সার্ভারে থেকেই এইচটিএমএল কে জেনারেট করে ওয়েবপেজ দেখাতে সাহায্য করে থাকে ।

Web Forms এর একটি ডেভেলপমেন্ট টুলস হলো Visual Studio Express । Visual Studio Express হলো Microsoft Visual Studio এর একটি ফ্রী ভার্সন । আপনি যদি Visual Studio Express আপনার কম্পিউটারে ইন্সটল করে থাকেন তাহলে আপনি পরবর্তী টিউটোরিয়ালে অনেক ভালো বুঝতে পারবেন ।
কোথায় পাবেন এই Visual Studio Express?
আপনি নিচের ঠিকানা থেকে ডাউনলোড করে নিতে পারেনঃ

১। Visual Web Developer 2012 (If you have Windows 7 or Windows 8)ঃ http://www.microsoft.com/web/handlers/webpi.ashx?command=getinstallerredirect&appid=VWDOrVs11AzurePack

২। Visual Web Developer 2010 (If you have Windows Vista or XP)ঃ http://www.microsoft.com/web/gallery/install.aspx?appid=VWDorVS2010SP1Pack

আপনার পিসির কনফিগারেশন অনুয়ায়ী আপনার Visual Studio Express টি ডাউনলোড করে নিন ।

আজ এই পর্যন্ত । কোথাও না বুঝতে পারলে কমেন্ট করতে কিন্তু ভুলবেন না । দেখা হবে পরবর্তী পোস্টে ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ২২]:: ASP.NET Web Forms এর Validation Server Controls ট্যাগের বর্ণনা

ASP.NET টিউটোরিয়াল :[পর্বঃ ২২]:: ASP.NET Web Forms এর Validation Server Controls ট্যাগের বর্ণনা
লেখকঃ মোস্তাফিজুর ফিরোজ ।

কেমন শিখলেন ASP.NET ? শিখতে শিখতে ASP.NET এর সবই শিখে ফেললাম । আজ আমরা ASP.NET এর শেষ পর্বে পৌছে গেছি । তাই আজ ASP.NET Web Forms এর Validation Server Controls ট্যাগের বর্ণনা শিখলেই ASP.NET এর সবই শেখা হয়ে যাবে ।

Validation Server Controls
Validation Server Control সাধারণত ইনপুট কনট্রোলের ডাটার ভেলিডেশন করার জন্য ব্যবহার করা হয় । যদি ডাটা ভেলিডেশন না হয় তাহলে ব্যবহারকারীরা এরর মেসেজ দেখতে পায় ।

ভেলিডেশন সার্ভার কনট্রোলের জন্য নিচের syntax ব্যবহার করা হয় ।
<asp:control_name id=”some_id” runat=”server” />

Validation Server Control ট্যাগের বর্ণনা

CompareValidator = ইনপুট কনট্রোলের ভেলু নির্ধারণ করে ।
CustomValidator = মেথড লিখতে সাহায্য করে যার সাহায্যে ভেলু প্রবেশ করানো যায় ।
RangeValidator = ব্যবহারকারীরা যে ভেলু প্রবেশ করায় তার মাঝামাঝি দুটো ভেলু হিসেব করে ।
RegularExpressionValidator = যেকোনো ভ্যালু এর সাথে এটা মিলে যাবে তার নিশ্চয়তা প্রদান করা হয় ।
RequiredFieldValidator = ইনপুট কনট্রোলের জন্য একটা জায়গা তৈরি করে ।
ValidationSummary = একটি পেজের সকল validation errors এর রিপোর্ট প্রদর্শন করে ।

আর এর ভিতরেই কিন্তু ASP.NET এর সকল পর্ব শেষ হয়ে গেলো । আমি আমার সাধ্য মত আপনাদের বোঝানোর চেষ্টা করেছি । কতটুকু বুঝতে পারলেন সেটা আপনাদের উপরই নির্ভর করবে । আর আপনাদের শেখার উপরই নির্ভর করবে আমার সকল টিউটোরিয়ালের সার্থকতা । তাই কোথাও না বুঝতে পারলে কমেন্ট করতে ভুলবেন না । দেখা হবে আবার কোনো নতুন ধারাবাহিক টিউটোরিয়াল নিয়ে । ততদিন এটা প্র্যাকটিস করতে থাকুন । ভাল থাকবেন এবং আমার জন্যও দোয়া করবেন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ২১]:: ASP.NET Web Forms এর Web Server Controls ট্যাগের বর্ণনা

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

গত পর্বে আমরা শিখেছিলাম ASP.NET Web Forms এর HTML Server Control ট্যাগের বর্ণনা । আজ আমরা শিখবো ASP.NET Web Forms এর Web Server Controls ট্যাগের বর্ণনা । আপনি রেডি তো ? ;)

Web Server Controls
Web Server Controls হল সার্ভারের বোঝার জন্য স্পেশাল ASP.NET ট্যাগ ।
HTML server controls এর মত Web Server Controls এ ও HTML ইলিমেন্টস গুলো ASP.NET এর ভিতর সাধারণ টেক্সট আকারেই থাকে । এটাকে প্রোগামেবল করার জন্য এতে runat=”server” এলিমেন্ট যোগ করা হয়ে থাকে । এখানে runat=”server” এলিমেন্ট প্রকাশ করে এটা একটা সার্ভার কনট্রোল ।
Web Server Controls তৈরী করার জন্য নিচের মত একটা syntax ব্যবহার করা হয় ।
<asp:control_name id=”some_id” runat=”server” />

Web Server Control ট্যাগের বর্ণনা

AdRotator = ছবিগুলোর ধারাবাহিকতা দেখায় ।
Button = পুশ বাটন দেখায় ।
Calendar = একটি ক্যালেন্ডার দেখায় ।
CalendarDay = একটি দিনের ক্যালেন্ডার কনট্রোল দেখায় ।
CheckBox = একটি চেক বক্স প্রদর্শন করে ।
CheckBoxList = multi-selection check box group তৈরী করে ।
DataGrid = একটি গ্রিডে ডাটার উৎসের ক্ষেত্র দেখায় ।
DataList = টেমপ্লেট ব্যবহার করে ডাটা উৎসের আইটেমগুলোকে দেখায় ।
DropDownList = drop-down list তৈরী করে ।
HyperLink = HyperLink তৈরি করে ।
Image = ছবি প্রদর্শন করে ।
ImageButton = clickable image তৈরি করে ।
Label = প্রোগ্রামাবেল static content দেখায় ।
LinkButton = hyperlink button তৈরি করে ।
ListBox = single- or multi-selection drop-down list তৈরি করে ।
ListItem = লিস্টের ভিতর আইটেম তৈরি করে ।
Literal = প্রোগ্রামাবেল static content দেখায় ।
Panel = অন্যদের কন্ট্রোল করে ।
PlaceHolder = কোড জমা রাখার জন্য জায়গা রেখে দেয় ।
RadioButton = Radio Button তৈরি করে ।
RadioButtonList = Radio Button গ্রুপ তৈরি করে ।
BulletedList = বুলেট ফরমেটে লিস্ট তৈরি করে ।
Repeater = রিপিট লিস্ট তৈরি করে কনট্রোলের জন্য ।
Style = কন্ট্রোলের স্টাইল তৈরি করে ,
Table = টেবিল তৈরি করে ।
TableCell = টেবিলের একক সেল তৈরি করে ।
TableRow = টেবিলের সারি তৈরি করে ।
TextBox = TextBox তৈরি করে ।
Xml = Xml ফাইল দেখায় ।

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

ASP.NET টিউটোরিয়াল :[পর্বঃ ২০]:: ASP.NET Web Forms এর HTML Server Control ট্যাগের বর্ণনা

ASP.NET টিউটোরিয়াল :[পর্বঃ ২০]:: ASP.NET Web Forms এর HTML Server Control ট্যাগের বর্ণনা
লেখকঃ মোস্তাফিজুর ফিরোজ ।

শিখতে শিখতে আমরা কিন্তু প্রায় শেষ পর্যায়ে । আজ আমরা শিখবো ASP.NET Web Forms এর HTML Server Control ট্যাগের বর্ণনা করা ।

HTML Server Controls
HTML সার্ভার কনট্রোল হলো HTML ট্যাগ যেটা সার্ভারকে বুঝাতে সাহায্য করে ।
HTML ইলিমেন্টস গুলো ASP.NET এর ভিতর সাধারণ টেক্সট আকারেই থাকে । এটাকে প্রোগামেবল করার জন্য এতে runat=”server” এলিমেন্ট যোগ করা হয়ে থাকে । এখানে runat=”server” এলিমেন্ট প্রকাশ করে এটা একটা সার্ভার কনট্রোল ।

উল্লেখ্য, সকল এইচটিএমএল সার্ভার কনট্রোল গুলো runat=”server” এট্রিবিউটের সাথে <form> ট্যাগ আকারে থাকতে হবে ।
ASP.NET এর ভিতরকার সকল এইচটিএমএল এলিমেন্টস গুলো ভালভাবে ট্যাগ দ্বারা শেষ হতে হবে ।

HTML Server Control ট্যাগের বর্ণনা

HtmlAnchor = HTML element কনট্রোল করে ।
HtmlButton =
HtmlForm =

HTML element কনট্রোল করে ।

HtmlGeneric = ,

, প্রভৃতি HTML server কনট্রোল করে ।

HtmlImage = HTML element কনট্রোল করে ।
HtmlInputButton = , , এবং HTML elements কনট্রোল করে ।
HtmlInputCheckBox = HTML element কনট্রোল করে ।
HtmlInputFile = HTML element কনট্রোল করে ।
HtmlInputHidden = HTML element কনট্রোল করে ।
HtmlInputImage = HTML element কনট্রোল করে ।
HtmlInputRadioButton = HTML element কনট্রোল করে ।
HtmlInputText = এবং HTML elements কনট্রোল করে ।
HtmlSelect =
HtmlTable = HTML element কনট্রোল করে ।
HtmlTableCell = এবং HTML elements কনট্রোল করে ।
HtmlTableRow = HTML element কনট্রোল করে ।
HtmlTextArea =

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

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৯]:: ASP.NET Web Forms এর বিভিন্ন উদাহরণ

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

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

ASP.NET HTML Controls

HTMLAnchor ঃ http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlanchor
HTMLButton : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlbutton
HTMLImage : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlimage
HTMLImage 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlimage2
HTMLInputbutton : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlinputbutton
HTMLInputCheckbox : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlinputcheckbox
HTMLInputHidden : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlinputhidden
HTMLInputImage : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlinputimage
HTMLInputRadiobutton : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmlinputradiobutton
HTMLTable : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmltable
HTMLTable 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmltable2
HTMLTextarea : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_htmltextarea

ASP.NET Web Controls

AdRotator : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_adrotator
Button : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_button
Button 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_button2
Calendar : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_calendar
Calendar 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_calendar
Calendar 3 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_calendar3
Checkbox : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_checkbox
CheckboxList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_checkboxlist
DataList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_datalist1
DataList with styles : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_datalist2
DataList with : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_datalist3
DropdownList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_dropdownlist
Hyperlink : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_hyperlink
Image : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_image
ImageButton : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_imagebutton
Label : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_label
LinkButton : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_linkbutton
Listbox : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_listbox
Literal : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_literal
Literal 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_literal2
Panel : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_panel
Radiobutton : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_radiobutton
RadiobuttonList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_radiobuttonlist
Repeater : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_repeater1
Repeater with <AlternatingItemTemplate> : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_repeater2
Repeater with <SeparatorTemplate> : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_repeater3
Table : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_table
Table 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_table2
Textbox : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_textbox
Textbox 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_textbox2
Textbox 3 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_textbox3
XML : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_xml

ASP.NET Validation Controls

CompareValidator : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_comparevalidator
CompareValidator 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_comparevalidator2
CustomValidator : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_customvalidator
RangeValidator : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_rangevalidator
RangeValidator 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_rangevalidator2
RegularExpressionValidator : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_regularexpvalidator
RequiredFieldValidator : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_reqfieldvalidator
Validationsummary : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_validationsum
Validationsummary 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_validationsum2

ASP.NET Events

Page_Load : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_pageload
Page.IsPostBack : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_pageispostback

ASP.NET Data Binding

ArrayList RadioButtonList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_arraylist_radio1
ArrayList DropDownList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_arraylist_drop1
Hashtable RadioButtonList 1 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_hashtable_radio1
Hashtable RadiobuttonList 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_hashtable_radio2
Hashtable DropDownList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_hashtable_drop1
SortedList RadioButtonList 1 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_sortedlist_radio1
SortedList RadiobuttonList 2 : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_sortedlist_radio2
SortedList DropDownList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_sortedlist_drop1
XML RadiobuttonList : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_xml_radio1

ASP.NET Database

Database connection – Bind to a Repeater control : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_dbconn_repeater
Database connection – Bind to a DataList control : http://www.w3schools.com/aspnet/showaspx.asp?filename=demo_dbconn_datalist

এগুলো সবই কিন্তু আমি আগে দেখিয়েছি । একটু মনে করে দেখুন । কি নামগুলো সব এখন পরিচিত মনে হচ্ছে নাহ? হুম । উদাহরণ গুলো দেখুন তাহলেই সব মনে পড়বে । না দেখে আবার আমাকে তাই দোষ দিবেন না কিন্তু । ;)

এখান থেকে উদাহরণ দেখে দেখে চর্চা করুন এবং তার প্রতিফলন দেখুন । সবই খুব খুব সহজ এবং অনেক অনেক মজার ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৮]:: ASP.NET Web Forms দিয়ে ওয়েবসাইট নেভিগেশন

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

গত পর্বে আমরা মাস্টার পেজ আর কনটেন্ট পেজ কি জিনিস এবং এর ব্যবহার শিখেছি । আজ আমরা শিখবো ASP.NET Web Forms দিয়ে ওয়েবপেজ নেভিগেশন ।

ওয়েবসাইট নেভিগেশন কি?
সাধারণত একটি বড় ওয়েবসাইটের মেনু নিয়ন্ত্রণ করা অনেক কঠিন এবং অনেক সময়ের ব্যাপার । তাই ASP.NET একটি ফাইলের ভিতর সব জমা করে রাখে যাতে খুব সহজে নিয়ন্ত্রণ করা যায় । এই ফাইলটিকে বলা হয় ওয়েব সাইটম্যাপ এবং এটা প্রধান ডিরেকটরীতে জমা করে রাখা হয় ।

ASP.NET তিন ধরণের নেভিগেশন কন্ট্রোল করে থাকে ।
১। Dynamic menus
২। TreeViews
৩। Site Map Path

সাইটম্যাপ ফাইল
আমরা বুঝানোর জন্য নিচের সাইটম্যাপটিকে ব্যবহার করবো ।

xml version=”1.0″ encoding=”ISO-8859-1″ ?>
<siteMap>
<siteMapNode title=”Home” url=”/aspnet/w3home.aspx”>
<siteMapNode title=”Services” url=”/aspnet/w3services.aspx”>
<siteMapNode title=”Training” url=”/aspnet/w3training.aspx”/>
<siteMapNode title=”Support” url=”/aspnet/w3support.aspx”/>
</siteMapNode>
</siteMapNode>
</siteMap>

XML file এ অবশ্যই একটি <siteMap> ট্যাগ থাকবে ।
<siteMap> ট্যাগ শুধু মাত্র একটি <siteMapNode> থাকবে ।
প্রতি <siteMapNode> এর অনেকগুলো ওয়েব পেজ থাকতে পারে ।
প্রতি <siteMapNode> পেজ টাইটেল এবং URL নির্দেশ করবে ।

উল্লেখ্য সাইটম্যাপ ফাইল রুট ডিরেক্টরিতে থাকবে এবং URL রুট ডিরেকটরী থেকে শুরু হবে ।

ডায়নামিক মেনু
<asp:Menu> নিয়ন্ত্রণ করে সাইটের একটি আদর্শ নেভিগেশন মেনু তৈরী করবে ,
কোডের উদাহরন দেখিঃ

<asp:SiteMapDataSource id=”nav1″ runat=”server” />

<form runat=”server”>
DataSourceId=”nav1″ />
form>

<asp:Menu> উদাহরণে সার্ভারের নেভিগেশন মেনু দেখাবে ।
DataSourceId সার্ভারের ডাটার উৎস দেখাবে । id=”nav1″ টি <asp:SiteMapDataSource> এর সাথে যুক্ত হতে সাহায্য়ংক্রিয়ভাবেp:SiteMapDataSource> কনট্রোল স্বয়ংক্রিয়ভাবে ডিফল্ট সাইটম্যাপের সাথে যুক্ত হবে ।

TreeView
<asp:TreeView> control নেভিগেশন মেনুর অনেকগুলো লেভেলকে একসাথে দেখাতে সাহায্য করবে । এটা + অথবা – সিম্বলের মত দেখতে হবে ।

<asp:SiteMapDataSource id=”nav1″ runat=”server” />

<form runat=”server”>
<asp:TreeView runat=”server” DataSourceId=”nav1″ />
</form>

SiteMapPath
SiteMapPath হলো নেভিগেশন প্যাথের সকল প্যাথকে প্রধান প্যাথের সাথে দেখাবে ।

<form runat=”server”>
<asp:SiteMapPath runat=”server” />
</form>

<asp:SiteMapPath> সার্ভারের সকল প্যাথকে দেখাবে ।

তাহলে আজ শিখে ফেললেন তো ASP.NET Web Forms দিয়ে ওয়েবসাইট নেভিগেশন তৈরির মুল বিষয় । এখন শুধু চর্চা করতে থাকুন ।

ASP.NET টিউটোরিয়াল :[পর্বঃ ১৭]:: ASP.NET Web Forms দিয়ে সাইটের প্রধান পেজ তৈরী

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

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

প্রধান পেজ কি?
প্রধান পেজকে বলা হয় মাস্টার পেজ । এই মাস্টার পেজ আপনার ওয়েবসাইটের অন্যান্য পেজের জন্য একটা টেমপ্লেট তৈরি করে থাকে । এটা নির্দেশ করে আপনার এই ওয়েবসাইটের অন্যান্য পেজগুলো দেখতে কেমন হবে । মাস্টার পেজ নির্দেশ করে কনটেন্ট গুলো কিভাবে বিন্যস্ত হবে । এই মাস্টার পেজ এবং কনটেন্ট পেজ নিয়েই কিন্তু প্রধান ওয়েবসাইট । কনটেন্ট পেজ আপনাকে যা যা দেখাবে সেগুলো ধারণ করে রাখে ।
যখন ব্যবহারকারীরা কনটেন্ট পেজ দেখতে চায় তখন ASP.NET মাস্টার পেজকে নিয়ন্ত্রণ করে কনটেন্ট পেজের উপাদান সমূহকে মাস্টার পেজের মত লেয়াউট করে দেখায় ।

প্রধান পেজের উদাহরণ

<%@ Master %>

<html>
<body>
<h1>Standard Header From Masterpage</h1>
<asp:ContentPlaceHolder id=”CPH1″ runat=”server”>
</asp:ContentPlaceHolder>
</body>
</html>

এটা থেকে আমরা বুঝে নিবো,
মাস্টার পেজ সাধারণত HTML page যা আর বাকি পেজের মতই দেখায় ।
@ Master ট্যাগ নির্দেশ করে এটা একটা মাস্টার পেজ ।
মাষ্টার পেজ <asp:ContentPlaceHolder> টাগের মাধ্যমে কনটেন্ট গুলো ধারন করে থাকে ।
id=”CPH1″ এট্রিবিউট একইপেজে অনেক মাস্টারপেজকে নির্দেশ করে ।
মাস্টার পেজ “master1.master” নামে সেভ করা থাকে ।

কনটেন্ট পেজের উদাহরণ

<%@ Page MasterPageFile=”master1.master” %>

<asp:Content ContentPlaceHolderId=”CPH1″ runat=”server”>
<h2>Individual Content</h2>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</asp:Content>

কনটেন্ট পেজ হলো ওয়েব এর আলাদা আলাদা কনটেন্ট পেজ ।
@ Page টাগ বুঝায় এটা একটি আদর্শ কনটেন্ট পেজ ।
এটা <asp:Content> ট্যাগের মাধ্যমে মাস্টার পেজের রেফারেন্স নেয় ।
কনটেন্ট পেজ “mypage1.aspx” নামে সেভ করা থাকে ।

কনটেন্ট পেজের কনট্রোল

<%@ Page MasterPageFile=”master1.master” %>

<asp:Content ContentPlaceHolderId=”CPH1″ runat=”server”>
<h2>W3Schools</h2>
<form runat=”server”>
<asp:TextBox id=”textbox1″ runat=”server” />
<asp:Button id=”button1″ runat=”server” text=”Button” />
</form>
</asp:Content>

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

তাহলে বুঝলেন তো মাস্টার পেজ আর কনটেন্ট পেজ কি জিনিস এবং এর ব্যবহার ।

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

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

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

ADO.NET কি?
ADO.NET তো ব্যভার করবো তাহলে আসুন আগে জেনে নেই ADO.NET টা কি জিনিস । এটা .NET Framework এর একটা অংশ । ADO.NET ডাটা অ্যাক্সেস হ্যান্ডেলের জন্য অনেকগুলো ক্লাস একসাথে ধারণ করে থাকে । এটা XML এর উপর ভিত্তি করে গঠিত হয় । এর ADO এর মত কোনো রেকর্ডসেট অবজেক্ট নাই ।

ডাটাবেজ কানেকশন তৈরী
আমরা কিন্তু আমাদের উদাহরণের জন্য Northwind database ব্যবহার করবো ।
প্রথমে তাই “System.Data.OleDb” নেমস্পেসকে ইম্পোর্ট করবো । এই নেমস্পেস যেনো আবার Microsoft Access এবং অন্যান্য OLE DB database provider এর সাথে কাজ করে থাকে । Page_Load সাবরুটিনের সাথে আমরা ডাটাবেজের কানেকশন তৈরী করবো । আমরা dbconn variable তৈরী করবো যেন সেটা নতুন OleDbConnection class আকারে ডাটাবেজকে নির্দেশ করে । তারপর ডাটাবেজ কানেকশনটি ওপেন করুন ।

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

<script runat=”server”>
sub Page_Load
dim dbconn
dbconn=New OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;
data source=” & server.mappath(“northwind.mdb”))
dbconn.Open()
end sub
</script>

খেয়াল রাখবেন যেন এর ভিতর কোনো লাইনের ব্রেক না হয় ।

ডাটাবেজ কমান্ড তৈরী
নতুন OleDbCommand ক্লাসে dbcomm variable তৈরী করবো যেন OleDbCommand class, SQL queries এর বিরুদ্ধে ডাটাবেজ টেবিল তৈরী করে ।

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

<script runat=”server”>
sub Page_Load
dim dbconn,sql,dbcomm
dbconn=New OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;
data source=” & server.mappath(“northwind.mdb”))
dbconn.Open()
sql=”SELECT * FROM customers”
dbcomm=New OleDbCommand(sql,dbconn)
end sub
</script>

ডাটা রিডার তৈরী
আমরা নিচের মত করে ডাটা রিডার তৈরী করতে পারি ।

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

<script runat=”server”>
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;
data source=” & server.mappath(“northwind.mdb”))
dbconn.Open()
sql=”SELECT * FROM customers”
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
end sub
</script>

রিপিটার কনট্রোল দূর করার জন্য বাইন্ডিং
রিপিটার কনট্রোল দূর করার জন্য আমরা ডাটারিডারকে রিপিটার এর সাথে বাইন্ডিং করতে পারি ।

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

<script runat=”server”>
sub Page_Load
dim dbconn,sql,dbcomm,dbread
dbconn=New OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0;
data source=” & server.mappath(“northwind.mdb”))
dbconn.Open()
sql=”SELECT * FROM customers”
dbcomm=New OleDbCommand(sql,dbconn)
dbread=dbcomm.ExecuteReader()
customers.DataSource=dbread
customers.DataBind()
dbread.Close()
dbconn.Close()
end sub
</script>

<html>
<body>

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

<HeaderTemplate>
<table border=”1″ width=”100%”>
<tr>
<th>Companyname</th>
<th>Contactname</th>
<th>Address</th>
<th>City</th>
</tr>
</HeaderTemplate>

<ItemTemplate>
<tr>
<td><%#Container.DataItem(“companyname”)%></td>
<td><%#Container.DataItem(“contactname”)%></td>
<td><%#Container.DataItem(“address”)%></td>
<td><%#Container.DataItem(“city”)%></td>
</tr>
</ItemTemplate>

<FooterTemplate>
</table>
</FooterTemplate>

</asp:Repeater>
</form>

</body>
</html>

ডাটাবেজ কানেকশন বন্ধ করা
ডাটাবেজ কানেকশন বন্ধ করতে আমরা নিচের মত করে কোড ব্যবহার করতে পারি ।

dbread.Close()
dbconn.Close()

তাহলে তো শিখে গেলেন ডাটাবেজ কানেকশন কিভাবে দিতে হয় আর কিভাবে বন্ধ করতে হয় ।