Gridview rowupdating keys
Again it seems odd given that we are firing a ROW level Row Command event that there's not an easier way to get row level context even when we are using a Command argument.
Also notice that if you have both Button Fields/Command Fields and template items that have command arguments, the Command Argument will contain different things.
as for substitution - I don't know what properties does your data-object have and how to bind to them.
I think you have no problem with it since binding to Id works (probably).
But the handling of the Grid View Command Argument is quite different.
First here's the implementation of a couple of Link Buttons in the template I can specify a command argument which is nice because it lets me be very concise about what data I want to pass to the Row Command event.
Here's some code that needs to retrieve a Pk of one of the bound items and then perform some work on the data (in this case the business object): This seems like a lot of code to have to write just to retrieve data context.The typical scenario might be a list where you can toggle certain options or where you can fire an operation that otherwise updates the data that's underlying the grid.I tend to use business objects in my applications so using the standard data controls doesn't work very well, nor would it really buy much in terms of abstraction.Approved which would yield True or False only though) and a Data Format String that can in some cases make this work but for a more dynamic scenario as above that still doesn't do the trick.
Template Columns and Commands If something more dynamic is required you need to use template fields.
Presumably you should should use one or the other but not both together to avoid confusion.