using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
namespace DataGrid
{
public partial class _Default : System.Web.UI.Page
{
protected DataTable GVdt = new DataTable();
int GVRowCounter = 0;
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Do_Load();
}
else
{
GVdt = (DataTable)(Session["FollowUpNotesDT"]);
GVRowCounter = (int)(Session["FollowUpNotesRowCounter"]);
}
}
private void Do_Load()
{
GVErrorLabel.Text = "";
try
{
GVdt.Columns.Add("ID");
GVdt.Columns.Add("FirstName");
GVdt.Columns.Add("LastName");
GVdt.Columns.Add("Email");
//i'm just hardcoding in some data at the moment. This will be looped from database.
GVRowCounter = 5; // this will increment in loop when you populate datagrid
Session["FollowUpNotesRowCounter"] = GVRowCounter;
Session["FollowUpNotesDT"] = GVdt;
BindGrid();
}
catch (Exception e)
{
string GVError = ""; GVError = Convert.ToString(e.Message);
GVErrorLabel.Text = "Unable to load data: " + GVError;
}
}
private void BindGrid()
{
GVErrorLabel.Text = "";
try
{
Do_BLANK();
GridView1.DataSource = GVdt;
GridView1.DataBind();
GridView1.Columns[0].Visible = false;
}
catch (Exception e)
{
string GVError = ""; GVError = Convert.ToString(e.Message);
GVErrorLabel.Text = "Unable to load data: " + GVError;
}
}
protected void Do_BLANK()
{
if (GVdt.Rows.Count < 1)
{
GVdt.Rows.Add("<<BLANK>>","","","");
}
else
{
try
{
foreach (GridViewRow r in GridView1.Rows)
{
Boolean DeletedSomething = false;
//LOOPING THE GV TO FIND A ROW THAT IS CHECKED FOR DELETE
DeletedSomething = true;
try
{
//GET THE STRING ID
string GVTheID = "<<BLANK>>";
//GridView1.DeleteRow(GVID);
for (int i = 0; i < GVdt.Rows.Count; )
{
string tmpID = GVdt.Rows[i][0].ToString();
if (GVTheID == tmpID)
{
GVdt.Rows.RemoveAt(i);
i = 0;
}
i++;
}
}
catch
{
}
}
}
catch
{
}
}
}
protected void GV_DELETE()
{
GVErrorLabel.Text = "";
try
{
foreach (GridViewRow r in GridView1.Rows)
{
Boolean DeletedSomething = false;
//LOOPING THE GV TO FIND A ROW THAT IS CHECKED FOR DELETE
Boolean DelChecked = ((CheckBox)r.FindControl("GVCB1")).Checked;
if (DelChecked == true)
{
DeletedSomething = true;
try
{
//GET THE STRING ID
string GVTheID = ((Label)r.FindControl("GVlblID")).Text;
//GridView1.DeleteRow(GVID);
for (int i = 0; i < GVdt.Rows.Count; )
{
string tmpID = GVdt.Rows[i][0].ToString();
if (GVTheID == tmpID)
{
GVdt.Rows.RemoveAt(i);
i = 0;
}
i++;
}
}
catch { }
}
//IF I HAVE DELETED SOMETHING, I WANT TO MY DATATABLE
if (DeletedSomething == true)
{
Session["FollowUpNotesDT"] = GVdt;
BindGrid();
}
}
}
catch (Exception e)
{
string GVError = ""; GVError = Convert.ToString(e.Message);
GVErrorLabel.Text = "Unable to load data: " + GVError;
}
}
protected void Add_Line()
{
GVErrorLabel.Text = "";
try
{
int rw = 0; rw = GVRowCounter;
rw++;
GVRowCounter = rw;
Session["FollowUpNotesRowCounter"] = GVRowCounter;
string GVstrID = Convert.ToString(rw);
string GVstrFirstName = ((TextBox)GridView1.FooterRow.FindControl("GVtxtFirstName")).Text;
string GVstrLastName = ((TextBox)GridView1.FooterRow.FindControl("GVtxtLastName")).Text;
string GVstrEmail = ((TextBox)GridView1.FooterRow.FindControl("GVtxtEmail")).Text;
if (GVstrFirstName.Length < 1)
{
GVErrorLabel.Text = "Invalid FirstName!";
// * * * * POP A JAVASCRIPT MESSAGE
//string javaScript = "<script language=JavaScript>\n" + "alert('The first name field is blank.');\n" + "</script>";
// RegisterStartupScript("WarningScript", javaScript);
return;
}
GVdt.Rows.Add(GVstrID, GVstrFirstName, GVstrLastName, GVstrEmail);
BindGrid();
}
catch (Exception e)
{
string GVError = ""; GVError = Convert.ToString(e.Message);
GVErrorLabel.Text = "Unable to load data: " + GVError;
}
}
protected void GVCB2_CheckedChanged1(object sender, EventArgs e)
{
foreach (GridViewRow r in GridView1.Rows)
{
((CheckBox)r.FindControl("GVCB1")).Checked = true;
}
}
protected void GVbtnSAve_Click(object sender, EventArgs e)
{
Add_Line();
}
protected void btnDelete_Click(object sender, EventArgs e)
{
GV_DELETE();
}
}
}