lo que hice yo para solucionar el problema del id es lo siguiente:
Código HTML:
Ver original<asp:BoundColumn ItemStyle-Width="1" DataField="idDocumento" HeaderText="ID" ReadOnly="true" Visible="false" />
donde es la primera columna con visible=false
luego yo conosco dos maneras de obtener el id, ambas dependen de como se declare el Sub.
la primera forma:
Código vb:
Ver originalSub dgrObtenerid1(ByVal s As Object, ByVal e As DataGridCommandEventArgs)
Dim stridDoc As String = e.Item.Cells(0).Text 'obtener id
End Sub
y la segunda forma
Código vb:
Ver originalSub dgrObtenerid2(ByVal sender As Object, ByVal e As EventArgs)
Dim stridDoc As String = dgrDocumentos.SelectedItem.Cells(0).Text 'obtener id
End Sub
donde en mi caso dgrDocumentos es el id del datagrid
la primera forma se ocupa por ejemplo en el Update (OnUpdateCommand del datagrid) y la segunda forma en el Select (OnSelectedIndexChanged del datagrid)