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!” ম্যসেজটিকে সাবরুটিন লোড হয়ে দ্বিতীয় লেবেলে দেখাবে । কিন্তু প্রথম লেবেলের তারিখ এবং সময়ের পরিবর্তন করবে না । তাহলে এর আসল কাজ টা বুঝতে পারলেন । দেখা হবে পরের পোস্টে ।