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(); } } }}