This Way:
HTML:
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!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 runat="server">
<title></title>
<style type="text/css">
.modalBackground
{
background-color: Black;
filter: alpha(opacity=90);
opacity: 0.8;
}
.modalPopup
{
background-color: #FFFFFF;
border-width: 3px;
border-style: solid;
border-color: black;
padding-top: 10px;
padding-left: 10px;
width: 350px;
height: 350px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<cc1:ToolkitScriptManager runat="server">
</cc1:ToolkitScriptManager>
<asp:Repeater ID="rptComments" runat="server">
<ItemTemplate>
<table>
<tr>
<td>
<b>Name</b>
</td>
<td style="padding-left: 20px;">
<asp:Label ID="lblName" runat="server" Text='<%# Eval("Name") %>'></asp:Label>
</td>
</tr>
<tr>
<td>
<b>Email</b>
</td>
<td style="padding-left: 20px;">
<asp:Label ID="lblEmail" runat="server" Text='<%# Eval("Email") %>'></asp:Label>
</td>
</tr>
<td>
<b>Comment Body</b>
</td>
<td style="padding-left: 20px;">
<asp:Label ID="lblCommentBody" runat="server" Text='<%# Eval("CommentBody") %>'></asp:Label>
</td>
</table>
</ItemTemplate>
</asp:Repeater>
<asp:Button ID="Button1" Text="Add Comment" runat="server" />
<asp:Panel ID="pnlPanelDemo" runat="server" CssClass="modalPopup" ViewStateMode="Disabled">
<table>
<tr>
<td>
<b>Name</b>
</td>
<td style="padding-left: 20px;">
<asp:TextBox ID="txtName" runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="rfvName" runat="server" Display="Dynamic" ControlToValidate="txtName"
ErrorMessage="Required"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
<b>Email</b>
</td>
<td style="padding-left: 20px;">
<asp:TextBox ID="txtEmail" runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="rfvEmail" runat="server" Display="Dynamic" ControlToValidate="txtEmail"
ErrorMessage="Required"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="revEmail" runat="server" Display="Dynamic" ControlToValidate="txtEmail"
ErrorMessage="Invalid Email Id" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
</td>
</tr>
<tr>
<td>
<b>Comment Body</b>
</td>
<td style="padding-left: 20px;">
<asp:TextBox ID="txtCommentBody" TextMode="MultiLine" Height="200" runat="server" />
</td>
<td>
<asp:RequiredFieldValidator ID="rfvCommentBody" runat="server" Display="Dynamic"
ControlToValidate="txtCommentBody" ErrorMessage="Required"></asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td>
</td>
<td style="padding-left: 20px;">
<asp:Button ID="btnAdd" runat="server" OnClick="AddComment" Text="Add Comment" />
</td>
<td>
</td>
</tr>
</table>
</asp:Panel>
<cc1:ModalPopupExtender ID="mpeDemo" BehaviorID="mpeDemo" runat="server" PopupControlID="pnlPanelDemo"
EnableViewState="false" BackgroundCssClass="modalBackground" TargetControlID="Button1">
</cc1:ModalPopupExtender>
</div>
</form>
</body>
</html>
C#:
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateComments();
}
}
private void PopulateComments()
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string sqlStatment = "SELECT Name,Email,CommentBody FROM Comments";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sqlStatment, con))
{
using (SqlDataAdapter da = new SqlDataAdapter(cmd))
{
DataSet ds = new DataSet();
da.Fill(ds);
this.rptComments.DataSource = ds;
this.rptComments.DataBind();
}
}
}
}
protected void AddComment(object sender, EventArgs e)
{
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
string sqlStatment = "INSERT INTO Comments(Name,Email,CommentBody) values(@Name,@Email,@CommentBody)";
using (SqlConnection con = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand(sqlStatment, con))
{
con.Open();
cmd.Parameters.AddWithValue("@Name", this.txtName.Text.Trim());
cmd.Parameters.AddWithValue("@Email", this.txtEmail.Text.Trim());
cmd.Parameters.AddWithValue("@CommentBody", txtCommentBody.Text.Trim());
cmd.ExecuteNonQuery();
con.Close();
}
}
Response.Redirect("~/AddCommentsAjaxWay.aspx");
}
SQL:
CREATE TABLE [dbo].[Comments](
[CommentId] [int] IDENTITY(1,1) NOT NULL,
[CommentBody] [nvarchar](2000) NOT NULL,
[Name] [varchar](30) NOT NULL,
[Email] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_Comments] PRIMARY KEY CLUSTERED
(
[CommentId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
Thank You.