title says it all. I think I am missing something simple here.
form1.aspx
form1.aspx.cs
form1.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="ISEMAILAPP.WebForm2" %>
<!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
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
telerik:RadScriptManager
ID
=
"RadScriptManager1"
runat
=
"server"
>
<
Scripts
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.Core.js"
>
</
asp:ScriptReference
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQuery.js"
>
</
asp:ScriptReference
>
<
asp:ScriptReference
Assembly
=
"Telerik.Web.UI"
Name
=
"Telerik.Web.UI.Common.jQueryInclude.js"
>
</
asp:ScriptReference
>
</
Scripts
>
</
telerik:RadScriptManager
>
<
telerik:RadAjaxPanel
ID
=
"RadAjaxPanel1"
runat
=
"server"
>
<
telerik:RadListView
ID
=
"messagelist"
ItemPlaceholderID
=
"itemPlaceholder"
runat
=
"server"
onitemcommand
=
"messagelist_ItemCommand"
InsertItemPosition
=
"LastItem"
>
<
LayoutTemplate
>
<
table
id
=
"Table1"
runat
=
"server"
>
<
tr
id
=
"Tr1"
runat
=
"server"
>
<
th
> </
th
>
<
th
>Start</
th
>
<
th
>End</
th
>
<
th
>Subject</
th
>
<
th
>Message</
th
>
</
tr
>
<
tr
runat
=
"server"
id
=
"itemPlaceholder"
></
tr
>
</
table
>
</
LayoutTemplate
>
<
EmptyDataTemplate
>
<
table
id
=
"Table1"
runat
=
"server"
>
<
tr
id
=
"Tr1"
runat
=
"server"
>
<
th
> </
th
>
<
th
>emptyStart</
th
>
<
th
>End</
th
>
<
th
>Subject</
th
>
<
th
>Message</
th
>
</
tr
>
<
tr
runat
=
"server"
id
=
"itemPlaceholder"
></
tr
>
</
table
>
</
EmptyDataTemplate
>
<
ItemTemplate
>
<
tr
>
<
td
><
asp:Button
ID
=
"btnEdit"
runat
=
"server"
Text
=
"Edit"
CommandName
=
"Edit"
AutoPostback
=
"true"
></
asp:Button
> <
telerik:RadButton
ID
=
"deletebutton"
runat
=
"server"
Text
=
"Delete"
AutoPostBack
=
"true"
CommandName
=
"Delete"
> </
telerik:RadButton
></
td
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"startdate"
Text='<%# Eval("Start") %>' />
</
td
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"enddate"
Text='<%# Eval("End") %>' />
</
td
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"subjectline"
Text='<%# Eval("Subject") %>' />
</
td
>
<
td
>
<
asp:Label
runat
=
"server"
ID
=
"messageline"
Text='<%# Eval("Message") %>' />
</
td
>
</
tr
>
</
ItemTemplate
>
<
EditItemTemplate
>
<
tr
style
=
"background-color:Gray;"
>
<
td
><
telerik:RadButton
ID
=
"savebutton"
runat
=
"server"
Text
=
"Save"
AutoPostBack
=
"true"
CommandName
=
"Update"
> </
telerik:RadButton
>
<
asp:Button
ID
=
"BtnCancel"
runat
=
"server"
Text
=
"Cancel"
CommandName
=
"Cancel"
CausesValidation
=
"false"
Width
=
"70px"
/></
td
>
<
td
>
<
telerik:RadDateTimePicker
ID
=
"startdate"
runat
=
"server"
SelectedDate='<%# Bind("Start") %>' ></
telerik:RadDateTimePicker
>
</
td
>
<
td
>
<
telerik:RadDateTimePicker
ID
=
"enddate"
runat
=
"server"
SelectedDate='<%# Bind("End") %>' ></
telerik:RadDateTimePicker
>
</
td
>
<
td
>
<
asp:TextBox
ID
=
"subjectline"
runat
=
"server"
Text='<%# Bind("Subject") %>'></
asp:TextBox
>
</
td
>
<
td
>
<
telerik:RadEditor
Content='<%# Bind("Message") %>' ID="messageline" runat="server" ></
telerik:RadEditor
>
</
td
>
</
tr
>
</
EditItemTemplate
>
<
InsertItemTemplate
>
<
tr
>
<
td
><
telerik:RadButton
ID
=
"insertbutton"
runat
=
"server"
Text
=
"Add New"
AutoPostBack
=
"true"
CommandName
=
"Insert"
> </
telerik:RadButton
>
<
asp:Button
ID
=
"BtnCancel"
runat
=
"server"
Text
=
"Cancel"
CommandName
=
"Cancel"
CausesValidation
=
"false"
Width
=
"70px"
/></
td
>
<
td
>
<
telerik:RadDateTimePicker
ID
=
"startdate"
runat
=
"server"
></
telerik:RadDateTimePicker
>
</
td
>
<
td
>
<
telerik:RadDateTimePicker
ID
=
"enddate"
runat
=
"server"
></
telerik:RadDateTimePicker
>
</
td
>
<
td
>
<
asp:TextBox
ID
=
"subjectline"
runat
=
"server"
></
asp:TextBox
>
</
td
>
<
td
>
<
telerik:RadEditor
ID
=
"messageline"
runat
=
"server"
></
telerik:RadEditor
>
</
td
>
</
tr
>
</
InsertItemTemplate
>
</
telerik:RadListView
>
</
telerik:RadAjaxPanel
>
</
form
>
</
body
>
</
html
>
form1.aspx.cs
using System;
using System.Collections.Generic;
using System.Configuration;
using System.IO;
using System.Net.Mail;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
namespace ISEMAILAPP
{
public partial class WebForm2 : System.Web.UI.Page
{
string messageKey = "messages";
protected void Page_Load(object sender, EventArgs e)
{
messagelist.InsertItemPosition = RadListViewInsertItemPosition.LastItem;
if (!Page.IsPostBack)
{
// If the session variable is empty, initialize an
// empty list as the datasource
if (Session[messageKey] == null)
{
Session[messageKey] = new List<
mEvent
>();
}
foreach (RadListViewDataItem item in messagelist.Items)
{
item.Edit = true;
}
BindList();
}
}
private void BindList()
{
messagelist.DataSource = null;
messagelist.DataSource = (List<
mEvent
>)Session[messageKey];
messagelist.InsertItemPosition = RadListViewInsertItemPosition.LastItem;
messagelist.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{/*
DateTime start = this.start.SelectedDate.Value;
DateTime end = this.end.SelectedDate.Value;
string s = subject.Text;
string m = message.Content;
// Grab the current list from the session and add the
// currently selected DropDown item to it.
List<
mEvent
> messages = (List<
mEvent
>)Session[messageKey];
messages.Add(new mEvent(start,end,s,m));
subject.Text = string.Empty;
message.Content = string.Empty;
this.start.Clear();
this.end.Clear();
BindList();
* */
}
private void UpdateBindList()
{
// messagelist.DataSource = null;
messagelist.DataSource = (List<
mEvent
>)Session[messageKey];
messagelist.InsertItemPosition = RadListViewInsertItemPosition.LastItem;
messagelist.Rebind();
}
// Basic author object, used for databinding
private class mEvent
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
public String Subject { get; set; }
public String Message { get; set; }
public mEvent(DateTime start, DateTime end, string subject, string message)
{
Start = start;
End = end;
Subject = subject;
Message = message;
}
}
private string PopulateBody(string AppliesTo, string MtypeColor, string MtypeText, string Message)
{
var subjects = new List<
string
>();
var messages = new List<
string
>();
string body = string.Empty;
string dateString = DateTime.Today.ToShortDateString();
foreach (RadListViewDataItem item in messagelist.Items)
{
string currSubject = string.Empty;
string currMessage = string.Empty;
Label subject = (Label)item.FindControl("subjectline");
Label message = (Label)item.FindControl("messageline");
currSubject = subject.Text;
currMessage = message.Text;
subjects.Add(currSubject);
messages.Add(currMessage);
}
using (StreamReader reader = new StreamReader(Server.MapPath("~/emailtemplate.htm")))
{
body = reader.ReadToEnd();
}
body = body.Replace("{CurrentDate}", dateString);
//body = body.Replace("{AppliesTo}", AppliesTo);
// body = body.Replace("{MtypeColor}", MtypeColor);
//body = body.Replace("{MtypeText}", MtypeText);
body = body.Replace("{Message}", Message);
return body;
}
private void SendHtmlFormattedEmail(string recepientEmail, string subject, string body)
{
using (MailMessage mailMessage = new MailMessage())
{
mailMessage.From = new MailAddress(ConfigurationManager.AppSettings["UserName"]);
mailMessage.Subject = subject;
mailMessage.Body = body;
mailMessage.IsBodyHtml = true;
mailMessage.To.Add(new MailAddress(recepientEmail));
SmtpClient smtp = new SmtpClient();
smtp.Host = ConfigurationManager.AppSettings["Host"];
// smtp.EnableSsl = Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSsl"]);
System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential();
// NetworkCred.UserName = ConfigurationManager.AppSettings["UserName"];
//NetworkCred.Password = ConfigurationManager.AppSettings["Password"];
smtp.UseDefaultCredentials = true;
//smtp.Credentials = NetworkCred;
smtp.Port = int.Parse(ConfigurationManager.AppSettings["Port"]);
smtp.Send(mailMessage);
}
}
protected void SendEmail(object sender, EventArgs e)
{
/* string AppliesTo = TextBox2.Text;
string Message = RadEditor1.Content;
string MtypeColor = "#008AB0";
string MtypeText = "General Broadcast";
string Subject = TextBox1.Text;
string body = this.PopulateBody(AppliesTo,MtypeColor, MtypeText, Message);
this.SendHtmlFormattedEmail("xxxxx", Subject, body);
* */
}
protected void messagelist_ItemCommand(object sender, RadListViewCommandEventArgs e)
{
if (e.CommandName == RadListView.EditCommandName)
{
}
else if (e.CommandName == RadListView.CancelCommandName)
{
//cancel action
}
else if (e.CommandName == RadListView.UpdateCommandName)
{
//Perform the update
RadListViewEditableItem curItem = (RadListViewEditableItem)e.ListViewItem;
int curItemIndex = curItem.DisplayIndex;
RadDateTimePicker dtpStart = (RadDateTimePicker)curItem.FindControl("startdate");
RadDateTimePicker dtpEnd = (RadDateTimePicker)curItem.FindControl("enddate");
TextBox txtBoxSubject = (TextBox)curItem.FindControl("subjectline");
RadEditor reMessage = (RadEditor)curItem.FindControl("messageline");
DateTime start = dtpStart.SelectedDate.Value;
DateTime end = dtpEnd.SelectedDate.Value;
string s = txtBoxSubject.Text;
string m = reMessage.Content;
// Grab the current list from the session and add the
// currently selected DropDown item to it.
List<
mEvent
> messages = (List<
mEvent
>)Session[messageKey];
messages[curItemIndex] = new mEvent(start, end, s, m);
// messages.Add(new mEvent(start, end, s, m));
// subject.Text = string.Empty;
// message.Content = string.Empty;
// this.start.Clear();
// this.end.Clear();
UpdateBindList();
}
else if (e.CommandName == RadListView.PerformInsertCommandName)
{
//Perform the insert
RadListViewEditableItem curItem = (RadListViewEditableItem)e.ListViewItem;
int curItemIndex = curItem.DisplayIndex;
RadDateTimePicker dtpStart = (RadDateTimePicker)curItem.FindControl("startdate");
RadDateTimePicker dtpEnd = (RadDateTimePicker)curItem.FindControl("enddate");
TextBox txtBoxSubject = (TextBox)curItem.FindControl("subjectline");
RadEditor reMessage = (RadEditor)curItem.FindControl("messageline");
DateTime start = dtpStart.SelectedDate.Value;
DateTime end = dtpEnd.SelectedDate.Value;
string s = txtBoxSubject.Text;
string m = reMessage.Content;
// Grab the current list from the session and add the
// currently selected DropDown item to it.
List<
mEvent
> messages = (List<
mEvent
>)Session[messageKey];
messages[curItemIndex] = new mEvent(start, end, s, m);
// messages.Add(new mEvent(start, end, s, m));
// subject.Text = string.Empty;
// message.Content = string.Empty;
// this.start.Clear();
// this.end.Clear();
BindList();
}
else if (e.CommandName == RadListView.DeleteCommandName)
{
//Perform the Delete
RadListViewEditableItem curItem = (RadListViewEditableItem)e.ListViewItem;
int curItemIndex = curItem.DisplayIndex;
// Grab the current list from the session and add the
// currently selected DropDown item to it.
List<
mEvent
> messages = (List<
mEvent
>)Session[messageKey];
messages.RemoveAt(curItemIndex);
UpdateBindList();
}
}
}
}