У GridViewUpdateEventArgs есть свойства, позволяющие получить коллекции Keys , OldValues и NewValues для конкретного строки.
Вы могли бы получить к нему доступ так:
protected void gvShowComm_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
//Product_ID is a column that I am displaying in my GV!
int Product_ID = Int32.Parse(e.Keys["Product_ID"]);
Entity_Product_Point ev = new Entity_Product_Point();
ev.MyDateTime = DateTime.Parse(e.NewValues["MyProp"]);
// And so on...
}
Но это отстой! ASP.Net может сделать всю работу за вас, используя один из доступных классов DataSource. Для ваших целей вы должны заглянуть в LinqDataSource
Стоит отметить, что, хотя классы DataSource могут быть полезными и приятными, в них происходит довольно много волшебства, и вы можете в значительной степени исключить возможность использования с ними любых тестируемых шаблонов. (см. WebFormsMVP )
Если это не проблема, тогда иди к этому. Но достижение четкого разделения интересов лучше в долгосрочной перспективе. В этом случае вам потребуется реализовать оболочку фасада вокруг вашей бизнес-логики и использовать ObjectDataSource .
В любом случае вам лучше, чем вручную копаться в коллекциях пар ключ / значение в поисках значений, а затем преобразовывать их обратно в соответствующие им типы.