Salve ragazzi!!!

Ho un problema non so se piccolo o grande premetto che sono alle prime armi!!!

Ho una gridview e nella gridview ho inserito un item template con una checkbox all'interno per ogni riga...

Praticamente dovrei in base alle righe selezionate passarmi gli id di quelle righe ad un'altra pagina...

quindi ho fatto che una volta selezionate le check e premuto il pulsante stampa:

----------------

Dim row As GridViewRow
Dim chkbox As CheckBox
Dim i As Integer = 0
Dim idstampe As String = ""

For Each row In gvRisultato.Rows
chkbox = CType(gvRisultato.Rows(i).FindControl("chkStampa") , CheckBox)
If chkbox.Checked Then
idstampe = idstampe & "," & CType(row.Cells(0).Text, String)
End If
i += 1
Next

idstampe = (Mid(idstampe, 2))

btnStampaImmobili.OnClientClick = "javascript:window.open('Stampe/RicercaImmobili.aspx?id=" & idstampe & "');"

---------------------

La domanda è: come faccio ad ottenere il datakey invece di prendere l'id dalla cella con indice 0 come faccio ora (metodo credo molto brutto!!!)

domanda 2: perchè a volte faccio il postback con il bottone, seleziono altre caselle e la pagina dopo si ricorda quelle vecchie???