using System;
using System.Collections;
using System.Configuration;
using System.ComponentModel;
using System.Data.SqlClient;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
//Page Load
private void Page_Load(object sender, System.EventArgs e)
{
if(!IsPostBack)
{
CheckVisible(false);
GetCustomer();
dtPruductForGridGrid();
Session["Tb_Product"] = "";
}
}
----------
//Check Visible
private void CheckVisible(bool check)
{
btnCancel.Visible = check;
btnClose.Visible = check;
btnAdd.Visible = check;
btnDelete.Visible = check;
dgdshow.Visible = check;
}
----------
//Select Data for dropdown list
private void GetCustomer()
{
string connStr = ConfigurationSettings.AppSettings["MyDbConn2"].ToString();
SqlConnection cn = new SqlConnection(connStr);
SqlDataAdapter cmd = new SqlDataAdapter("SELECT a.Product_ID,a.Customer_ID,a.Customer_Name from Tb_Customer a", cn);//Select '' Product_ID,'' Customer_ID, '-- Select --' Customer_Name union
DataSet dsProduct = new DataSet();
cmd.Fill(dsProduct, "Tb_Product");
ddlProduct.DataSource = dsProduct.Tables["Tb_Product"];
ddlProduct.DataTextField = "Customer_Name";
ddlProduct.DataValueField = "Product_ID";
ddlProduct.DataBind();
}
----------
//Select data for grid
private DataTable dtPruductForGridGrid()
{
string connStr = ConfigurationSettings.AppSettings["MyDbConn2"].ToString();
SqlConnection cn = new SqlConnection(connStr);
SqlDataAdapter cmd = new SqlDataAdapter("SELECT a.seq,a.product_id,a.Product_Name,a.remark from Tb_Product a inner join Tb_Customer b on a.Product_ID = b.Product_ID where a. product_id='"+ddlProduct.SelectedValue+"'", cn);
DataSet dsProduct = new DataSet();
cmd.Fill(dsProduct, "Tb_Product");
DataTable dt = dsProduct.Tables["Tb_Product"];
Session["Tb_Product"] =dt;
return dt;
}
----------
//paint grid
private void PaintGrid()
{
DataTable dt = (DataTable)Session["Tb_Product"];
DataView dv = dt.DefaultView;//dsProduct.Tables["Tb_Product"]
dv.Sort = "seq desc";
dgdshow.DataSource = dv;
dgdshow.DataBind();
}
----------
//Add new
private void btnAdd_Click(object sender, System.EventArgs e)
{
if(dgdshow.EditItemIndex!= -1)
{
for (int i = 0; i < dgdshow.Items.Count; i++)
{
string product_id = dgdshow.Items[i].Cells[7].Text;
dgdshow.Items[i].Cells[2].Text = product_id;
}
return;
}
DataTable dt = dtPruductForGridGrid();
DataRow dr = dt.NewRow();
dr["seq"]= 0;
dt.Rows.InsertAt(dr,0);
dgdshow.EditItemIndex = 0;
//paint grid not dv.Sort = "seq asc";
dgdshow.DataSource = dt;
dgdshow.DataBind();
CheckVisible(true);
ddlProduct.Enabled = false;
lblRequire.Text = "";
}
----------
//Search data
private void btnsearch_Click(object sender, System.EventArgs e)
{
if(dgdshow.EditItemIndex!= -1)
{
for (int i = 0; i < dgdshow.Items.Count; i++)
{
string product_id = dgdshow.Items[i].Cells[7].Text;
dgdshow.Items[i].Cells[2].Text = product_id;
}
return;
}
dtPruductForGridGrid();
PaintGrid();
CheckVisible(true);
lblRequire.Text = "";
}
----------
//Cancel
private void btnCancel_Click(object sender, System.EventArgs e)
{
if(dgdshow.EditItemIndex!= -1)
{
for (int i = 0; i < dgdshow.Items.Count; i++)
{
string product_id = dgdshow.Items[i].Cells[7].Text;
dgdshow.Items[i].Cells[2].Text = product_id;
}
return;
}
CheckVisible(false);
lblRequire.Text = "";
Session["Tb_Product"] = "";
ddlProduct.Enabled = true;
}
----------
//Delete
private void btnDelete_Click(object sender, System.EventArgs e)
{
if(((CheckBox)this.dgdshow.Items[i].Cells[0].Controls[1]).Checked)
{
string seq = dgdshow.Items[i].Cells[6].Text;
string connStr = ConfigurationSettings.AppSettings["MyDbConn2"].ToString();
SqlConnection cn = new SqlConnection(connStr);
string Del = "Delete Tb_Product Where seq='"+seq+"'";
SqlDataAdapter cmd = new SqlDataAdapter(Del, cn);
DataSet dsProduct = new DataSet();
cmd.Fill(dsProduct, "Tb_Product");
dsProduct.AcceptChanges();
dtPruductForGridGrid();
PaintGrid();
CheckVisible(true);
lblRequire.Text = "Delete data completed";
btnDelete.Enabled = false;
}
}
----------
//check edit grid
private void SetCommandLink(string flag)
{
for(int i=0;i<=this.dgdshow.Items.Count;i++)
{
try
{
((LinkButton)this.dgdshow.Items[i].Cells[5].Controls[0]).CommandArgument = flag;
}
catch{}
}
}
----------
//Edit grid
private void dgdshow_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string product_id = dgdshow.Items[e.Item.ItemIndex].Cells[7].Text;
dgdshow.EditItemIndex = e.Item.ItemIndex;
dtPruductForGridGrid();
PaintGrid();
dgdshow.Items[e.Item.ItemIndex].Cells[2].Text = product_id;
SetCommandLink("Edit");
ddlProduct.Enabled = false;
CheckVisible(true);
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
lblRequire.Text = "";
}
----------
//Cancel grid
private void dgdshow_CancelCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
dgdshow.EditItemIndex = -1;
dtPruductForGridGrid();
PaintGrid();
CheckVisible(true);
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
ddlProduct.Enabled = true;
lblRequire.Text = "";
}
----------
//Page Current
private void dgdshow_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
if(dgdshow.EditItemIndex!= -1)
{
for (int i = 0; i < dgdshow.Items.Count; i++)
{
string product_id = dgdshow.Items[i].Cells[7].Text;
dgdshow.Items[i].Cells[2].Text = product_id;
}
return;
}
dgdshow.CurrentPageIndex = e.NewPageIndex;
gpage = e.NewPageIndex;
dtPruductForGridGrid();
PaintGrid();
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
ddlProduct.Enabled = true;
CheckVisible(true);
lblRequire.Text = "";
}
----------
//Max Seq for Insert
private int MaxSeq(string new_seq)
{
int max = 0;
string seq = "";
for (int i = 0; i < dgdshow.Items.Count; i++)
{
seq = dgdshow.Items[i].Cells[6].Text;
if(int.Parse(seq.ToString())>max)
{
max = int.Parse(seq.ToString());
}
}
max = max+1;
return max;
}
----------
//Inser/Update grid
private void dgdshow_UpdateCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string proID = "";
string remark = "";
string proName = "";
string seq = "";
#region Insert/Update
string fag = ((LinkButton)this.dgdshow.Items[e.Item.ItemIndex].Cells[5].Controls[0]).CommandArgument;
if(fag.Equals("Edit"))//Update
{
if((proName =((TextBox)this.dgdshow.Items[e.Item.ItemIndex].Cells[3].Controls[1]).Text)!="")
{
proID = dgdshow.Items[e.Item.ItemIndex].Cells[7].Text;
remark = ((TextBox)dgdshow.Items[e.Item.ItemIndex].Cells[4].Controls[1]).Text;
seq = dgdshow.Items[e.Item.ItemIndex].Cells[6].Text;
try
{
string connStr = ConfigurationSettings.AppSettings["MyDbConn2"].ToString();
SqlConnection cn = new SqlConnection(connStr);
string Update = "Update Tb_Product set product_name='"+proName+"',remark='"+remark+"' Where product_id = '"+proID+"' and seq='"+seq+"'";
SqlDataAdapter cmd = new SqlDataAdapter(Update, cn);
DataSet dsProduct = new DataSet();
cmd.Fill(dsProduct, "Tb_Product");
dsProduct.AcceptChanges();
dgdshow.EditItemIndex = -1;
dtPruductForGridGrid();
PaintGrid();
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
lblRequire.Text = "Save data completed";
}
catch(Exception err)
{
lblRequire.Text ="Update data is fail";
dtPruductForGridGrid();
PaintGrid();
CheckVisible(true);
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
return;
}
}
else
{
lblRequire.Text ="Please key Product Name";
((TextBox)this.dgdshow.Items[e.Item.ItemIndex].Cells[3].Controls[1]).Text = "";
string forFocus = ((TextBox)dgdshow.Items[e.Item.ItemIndex].Cells[3].Controls[1]).ClientID;
RegisterStartupScript("x1","");
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
CheckVisible(true);
return;
}
}
else//insert
{
remark = ((TextBox)dgdshow.Items[e.Item.ItemIndex].Cells[4].Controls[1]).Text;
seq = dgdshow.Items[e.Item.ItemIndex].Cells[6].Text;
if((proID =((TextBox)this.dgdshow.Items[e.Item.ItemIndex].Cells[2].Controls[1]).Text)!="")
{
if((proName =((TextBox)this.dgdshow.Items[e.Item.ItemIndex].Cells[3].Controls[1]).Text)!="")
{
try
{
string connStr = ConfigurationSettings.AppSettings["MyDbConn2"].ToString();
SqlConnection cn = new SqlConnection(connStr);
//gen new seq no
int newseq = MaxSeq(seq);
string Insert = "INSERT INTO Tb_Product(Seq,Product_id,Product_Name,Remark) VALUES ('"+newseq+"','"+proID+"','"+proName+"','"+remark+"') ";
SqlDataAdapter cmd = new SqlDataAdapter(Insert, cn);
DataSet dsProduct = new DataSet();
cmd.Fill(dsProduct, "Tb_Product");
dsProduct.AcceptChanges();
dgdshow.EditItemIndex = -1;
dtPruductForGridGrid();
PaintGrid();
lblRequire.Text = "Save data completed";
}
catch(Exception err)
{
lblRequire.Text = "Duplicate Data,Please your key new Product";
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
CheckVisible(true);
return;
}
}
else
{
lblRequire.Text = "Please key Product Name";
((TextBox)this.dgdshow.Items[e.Item.ItemIndex].Cells[3].Controls[1]).Text = "";
string forFocus = ((TextBox)dgdshow.Items[e.Item.ItemIndex].Cells[3].Controls[1]).ClientID;
RegisterStartupScript("x3","");
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
CheckVisible(true);
return;
}
}
else
{
lblRequire.Text = "Please key Product ID";
((DropDownList)this.dgdshow.Items[e.Item.ItemIndex].Cells[2].Controls[1]).SelectedValue = "";
string forFocus = ((DropDownList)dgdshow.Items[e.Item.ItemIndex].Cells[2].Controls[1]).ClientID;
RegisterStartupScript("x4","");
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
CheckVisible(true);
return;
}
}
#endregion
ddlProduct.Enabled = true;
CheckVisible(true);
for (int i = 0; i < dgdshow.Items.Count; i++)
{
dgdshow.Items[i].Cells[1].Text = ((dgdshow.CurrentPageIndex*dgdshow.PageSize)+(i+1)).ToString();
}
}