using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telerik.Web.UI;
using System.Collections;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Init(object sender, EventArgs e)
    {
        button1.Click += new EventHandler(button1_Click);
    }

    protected void button1_Click(object sender, EventArgs e)
    {
        var editItems = RadGrid1.EditItems.Cast<GridDataItem>();

        foreach (GridDataItem item in RadGrid1.Items)
        {
            Hashtable newValues = new Hashtable();
            Hashtable oldValues = new Hashtable();

            item.ExtractValues(oldValues);
            var editItem = editItems.Where(x => x.GetDataKeyValue("ProductID").ToString() == item.GetDataKeyValue("ProductID").ToString()).FirstOrDefault();
            

            if (editItem != null)
            {
                editItem.EditFormItem.ExtractValues(newValues);                
            }

            //now oldValues contains the collection of original field values
            //and newValues contains the collection of newly-entered  values
        }
    }

}
