Today, we will dig on simple well known concepts called Events. The simple
definition is message sent by some particular object to intimate that there is
some action will be generated.
- Publisher:
The publisher class is that which does some logic and sends or fires the
events.
- Subscribers:
The Subscriber class is that which handles the sent events where they are
subscribed for specific action.
Question Arises: Please Explain accordingly as per the situation of this
article. ??? What does Publisher Person do and what does Subscriber Person
do????
- Publisher Person Do:
-
Publisher replies, I will create and specify some delegate initially.
- I will declare and specify some event based on the delegate which I have
created previously.
- Then I would initiate and expect some action to be performed after I
eventually fire the event.
- Subscriber Person Do:
- Subscriber replies, I will look and received the events for which I am
subscribed for.
- I will be then firing off some handlers to notify occurrence of some
action towards client level.
- Eventually, it's up to my owner whether he will keep me in subscribed
mode or unsubscribed mode.
Question Arises: Where Can We Actually Use
This Stuff???
- You would use Events when you want to
respond with many subscribers.
- You would use Events when you communicate
to with specific method to expect some action need to be performed.
- You would use Events when you want to
synchronize threads.
- You would use Events when client who is
accessing the application expects some operation to be performed when
controls on page are fired.
- You would use when you expect the delegate
to respond application level basis operations.
- You would use when you want to wrap your
code with some asynchronous operation.
- I think we are all now good to go and
Implement Simple Event accessing C# 4.0 Ver Features.
- I would explain you in simple terms rather
than taking multiple classes and making you simple concept to be complex to
grasp.
Pre Requirements:
- Visual Studio 2010, ASP.NET C# 4.0,
ADO.NET and CSS
- SQL Server 2008.
I have created simple webform.aspx with simple
grid on it. To enhance look and feel of App I have just created very basic CSS
and added the class to Grid.
So The Complete Code of WebForm1.aspx looks like this:
<%@
Page Language="C#"
AutoEventWireup="true"
CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication2.WebForm1"
%>
<!DOCTYPE
html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml">
<head
id="Head1" runat="server">
<title></title>
<style
type="text/css">
.grid
{
font-family:
Cambria;
font-size:
medium;
color:
#006699;
background-color:
#C0C0C0;
border:
medium solid
#008080
}
</style>
</head>
<body>
<form
id="form1" runat="server">
<div><center>
<asp:GridView
ID="GridView1" runat="server"
BackColor="White"
CssClass="grid"
BorderColor="#CCCCCC"
BorderStyle="None"
BorderWidth="1px"
CellPadding="3">
<FooterStyle
BackColor="White"
ForeColor="#000066"
/>
<HeaderStyle
BackColor="#006699"
Font-Bold="True"
ForeColor="White"
/>
<PagerStyle
BackColor="White"
ForeColor="#000066"
HorizontalAlign="Left"
/>
<RowStyle
ForeColor="#000066"
/>
<SelectedRowStyle
BackColor="#669999"
Font-Bold="True"
ForeColor="White"
/>
<SortedAscendingCellStyle
BackColor="#F1F1F1"
/>
<SortedAscendingHeaderStyle
BackColor="#007DBB"
/>
<SortedDescendingCellStyle
BackColor="#CAC9C9"
/>
<SortedDescendingHeaderStyle
BackColor="#00547E"
/>
</asp:GridView>
<br
/>
<br
/>
</center>
</div>
</form>
</body>
</html>
Now, it's time for us to go and work on Code-Behind File:
Let's Declare Simple Delegates:
public
delegate void VijayDelegate();
public
delegate void
SampleDelegate(object sender,
EventArgs e);
And Simultaneously Events for this:
public
event VijayDelegate vijay;
public
event SampleDelegate sample;
We will now create simple method accessing database with ver 4.0 Features. Where
the code looks like this:
public void
Bind()
{
dynamic p =
new ExpandoObject();
p.Title = "Simple Grid View using
Events";
p.Data = new
Action(() =>
{
SqlConnection con = new
SqlConnection(@"Data Source=VIJAY-PC\SQLEXPRESS;Initial
Catalog=Candidate;Integrated Security=True");
DataSet ds = new DataSet();
SqlDataAdapter da = new
SqlDataAdapter("Select Id, FirstName, LastName, Age
from Student ", con);
da.Fill(ds, "s");
GridView1.DataSource = ds;
GridView1.DataBind();
});
p.Data();
}
We will now create Simple handler to pass on some data. Where the code looks
like this:
protected void
Letter_Changed(object sender,
EventArgs e)
{
Response.Write("<center><b><i><h1>Hey I
am Letter Changed <h1></center></b></i>");
}
The Complete Source Code of WebForm1.aspx.cs File looks like this:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Dynamic;
using
System.Data;
using
System.Data.SqlClient;
namespace
WebApplication2
{
public delegate
void VijayDelegate();
public delegate
void SampleDelegate(object
sender, EventArgs e);
public partial
class WebForm1 : System.Web.UI.Page
{
public event
VijayDelegate vijay;
public event
SampleDelegate sample;
protected void
Page_Load(object sender,
EventArgs e)
{
vijay += new
VijayDelegate(Bind);
vijay.Invoke();
sample +=
new SampleDelegate(Letter_Changed);
sample.Invoke(sender, e);
}
public void
Bind()
{
dynamic p =
new ExpandoObject();
p.Title = "Simple Grid View using
Events";
p.Data = new
Action(() =>
{
SqlConnection con =
new SqlConnection(@"Data
Source=VIJAY-PC\SQLEXPRESS;Initial Catalog=Candidate;Integrated Security=True");
DataSet ds =
new DataSet();
SqlDataAdapter da =
new SqlDataAdapter("Select
Id, FirstName, LastName, Age from Student ", con);
da.Fill(ds, "s");
GridView1.DataSource = ds;
GridView1.DataBind();
});
p.Data();
}
protected void
Letter_Changed(object sender,
EventArgs e)
{
Response.Write("<center><b><i><h1>Hey I
am Letter Changed <h1></center></b></i>");
}
}
}
The Output of this Program looks like this:
I hope this article is useful for you...