using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class abruzzoparchi_testconnection_TestDataGridConnection : System.Web.UI.Page
{
DataTable cart;
DataView cartView;
protected void Page_Load(object sender, EventArgs e)
{
if (Session["DG6_ShoppingCart"] == null)
{
cart = new DataTable();
//aggiungo l'intestazione di ogni singola colonna
cart.Columns.Add(new DataColumn("Qty", typeof(string)));
cart.Columns.Add(new DataColumn("Item", typeof(string)));
cart.Columns.Add(new DataColumn("Price", typeof(string)));
//Metto in sessione il data table
Session["DG6_ShoppingCart"] = cart;
// first load -- prepopulate with some data
for (int i = 1; i < 5; i++)
{
//aggiungo righe al datagrid nel caso in cui non lo
//abbia in sessione
DataRow dr = cart.NewRow();
dr[0] = ((int)(i % 2) + 1).ToString();
dr[1] = "Item " + i.ToString();
dr[2] = ((double)(1.23 * (i + 1))).ToString();
cart.Rows.Add(dr);
}
}
else
{
//altrimenti mi carico dalla sessione il datagrid
cart = (DataTable)Session["DG6_ShoppingCart"];
}
cartView = new DataView(cart);
cartView.Sort = "Item";
if (!IsPostBack)
{
this.BindGrid();
}
}
//utilizzo il seguente metodo per eseguire aggiornamenti del
//datagrid
public void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = (int)e.Item.ItemIndex;
this.BindGrid();
}
//elimina una riga dal datagrid
public void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = -1;
this.BindGrid();
}
//esegue l'aggiornamento del datagrid
public void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
// For bound columns the edited value is stored in a textbox,
// and the textbox is the 0th element in the column's cell
string item = e.Item.Cells[1].Text;
string qty = ((TextBox)e.Item.Cells[2].Controls[0]).Text;
string price = ((TextBox)e.Item.Cells[3].Controls[0]).Text;
// with a database, we'd use an update command. Since we're using an in-memory
// DataTable, we'll delete the old row and replace it with a new one
//remove old entry
cartView.RowFilter = "Item='" + item + "'";
if (cartView.Count > 0)
{
//item exists in cart
cartView.Delete(0);
}
cartView.RowFilter = "";
//add new entry
DataRow dr = cart.NewRow();
dr[0] = qty;
dr[1] = item;
dr[2] = price;
cart.Rows.Add(dr);
MyDataGrid.EditItemIndex = -1;
this.BindGrid();
}
//riempie il datagrid
public void BindGrid()
{
MyDataGrid.DataSource = cartView;
MyDataGrid.DataBind();
}
}