Bueno, en realidad es mas o menos lo mismo, lo que por lo que entendi en tu pregunta, recojias valores en cliente y los querias tratar en servidor... yo si quiero tratar los datos en servidor los recojo desde el code behind, en el ItemDataBound si no recuerdo mal...
Pero ya te digo que basicamente lo hago muy parecido a ti:
Por ejemplo en el OnRowDblClick de la grid recojera un ID así:
Código:
var grid = <%=gridName.ClientID%>;
var row = grid.MasterTableView.Rows[rowIndex];
var id= row.KeyValues["ID"];
Para esto hay que definir el ID en el DataKeyNames de la MasterTableView de la Grid ;)
Y luego pues para asignar el ID en un textbox, igual que tu, lo busco con el getElementByID y le asigno el innerText.