If I am understanding you right you need to the row id in order to get correct selected value. If this is the case I believe that you can use c.TableProjectTableDefinition.TableDefinitionId.TableNameId.TableNameId value as an index in this case.
If this suggestion does not work for you, you can declare rowIndex variable, which you should use as an index for your collection and increment it in the RowAction method.
If the problem still persists I will suggest you send us a simple test project which replicates the issue. Thus I will be able to review it locally and advice your further.
the Telerik team
Do you want to have your say when we set our development plans?
Do you want to know when a feature you care about is added or when a bug fixed?
Telerik Public Issue Tracking
system and vote to affect the priority of the items
When I response.Write the rowIndex after the grid has been made it did raise to the correct number of rows. But the rowIndex becomes the final rowIndex in the output html inside the grid.
so all the output for each row becomes :