Risolto

!!!!!!!
Posto la soluzione e ringrazio alfonso2 per l'interessamento.
All'interno del dataGrid ho inserito il checkbox html nudo e crudo:
<ItemTemplate>
<input type=checkbox ID="chk1_ReadWrite" name="chk1_ReadWrite" onClick="chk(this,'_chk1_ReadWrite','RW')" runat="server">
</ItemTemplate>
la funzione js non fa altro che recuperare l'id della riga del checkbox in questione, sostituendo all'id del checkbox tutto cio che non è utile:
function chk(obj,subst,type)
{
myStr=obj.id;
myStr=myStr.replace("dgr_Permessi__ctl","")
myStr=myStr.replace(subst,"")
if (obj.checked)
Form1.arr_chk.value=Form1.arr_chk.value + myStr + type + "|";
else
Form1.arr_chk.value=Form1.arr_chk.value.replace(myStr + type + "|","");
}
Da codice, quando leggo i dati mi carico un array a due dimensioni utilizzando una struttura:
...
'richiamo sub
riempiArr(myDs.Tables("PermessiTipoUtenti"))
Private Sub riempiArr(ByVal myTbl As DataTable)
Dim i As Int16
ReDim Preserve arrChkbox(myTbl.Rows.Count - 1)
For i = 0 To myTbl.Rows.Count - 1
arrChkbox(i).LetturaScrittura = myTbl.Rows.Item(i).Item(4)
arrChkbox(i).SoloLettura = myTbl.Rows.Item(i).Item(5)
arrChkbox(i).SoloStampa = myTbl.Rows.Item(i).Item(6)
Next
End Sub
Private Structure myData
Private myData()
Public LetturaScrittura As Boolean
Public SoloLettura As Boolean
Public SoloStampa As Boolean
End Structure
Assegno lo stato al checkbox durante il caricamento del datagrid sfruttando il comando "OnItemDataBound" in questo modo:
Public Sub eseguiControlli(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgr_Permessi.ItemDataBound
'esempio per un solo checkbox
Dim i As Int16
Dim chk As HtmlInputCheckBox
If e.Item.ItemType = ListItemType.Item Or _
e.Item.ItemType = ListItemType.AlternatingItem Then
i = e.Item.Cells(4).ID
chk = CType(e.Item.Cells(4).FindControl("chk1_ReadWrite"), HtmlInputCheckBox)
chk.Checked = arrChkbox(i).LetturaScrittura
End If
End Sub
Ciao a tutti e ancora grazie.