How to: Implement Data Editing When a Grid is Bound to a Table Created At Runtime
- 3 minutes to read
In this example, the ASPxGridView is bound to a DataTable created at runtime. The data table is stored within a Session. To enable data management, handle the following events:
-
This event is handled to add a new row to the source data table.
-
This event is handled to manually post changes to the source data table.
-
This event is handled to manually delete the required row from the source data table.
Note
You should specify the ASPx
The animation below shows the result:
using System.Data;
...
protected void Page_Load(object sender, EventArgs e) {
if (Session["GridData"] == null)
Session["GridData"] = CreateData();
ASPxGridView1.DataSource = Session["GridData"];
if (!IsPostBack && !IsCallback)
ASPxGridView1.DataBind();
}
private DataTable CreateData() {
DataTable table = new DataTable();
table.PrimaryKey = new DataColumn[] { table.Columns.Add("ID", typeof(Guid)) };
table.Columns.Add("Person", typeof(string));
table.Columns.Add("Age", typeof(int));
table.Rows.Add(new object[] { Guid.NewGuid(), "Mike", 30 });
table.Rows.Add(new object[] { Guid.NewGuid(), "Rosa", 22 });
table.Rows.Add(new object[] { Guid.NewGuid(), "Nick", 18 });
return table;
}
protected void ASPxGridView1_RowInserting(object sender,
DevExpress.Web.Data.ASPxDataInsertingEventArgs e) {
((DataTable)Session["GridData"]).Rows.Add(new object[] { Guid.NewGuid(),
e.NewValues["Person"], e.NewValues["Age"] });
e.Cancel = true;
ASPxGridView1.CancelEdit();
ASPxGridView1.DataBind();
}
protected void ASPxGridView1_RowUpdating(object sender,
DevExpress.Web.Data.ASPxDataUpdatingEventArgs e) {
DataRow row = ((DataTable)Session["GridData"]).Rows.Find(e.Keys["ID"]);
row["Person"] = e.NewValues["Person"];
row["Age"] = e.NewValues["Age"];
e.Cancel = true;
ASPxGridView1.CancelEdit();
ASPxGridView1.DataBind();
}
protected void ASPxGridView1_RowDeleting(object sender,
DevExpress.Web.Data.ASPxDataDeletingEventArgs e) {
DataRow row = ((DataTable)Session["GridData"]).Rows.Find(e.Keys["ID"]);
((DataTable)Session["GridData"]).Rows.Remove(row);
e.Cancel = true;
ASPxGridView1.DataBind();
}