Maporcazza, scritto così invece funziona
codice:
 Dim dtx As New DataTable
     ...
      If dtx.Rows.Count > 0 Then
        Dim dra As DataRow() = dtx.Select("LD_tipork IN ('A', 'D', 'N', '£', 'S')")
        If dra.Length > 0 Then
            gvpersfatture.DataSource = dra.CopyToDataTable
          Else
            gvpersfatture.DataSource = Nothing
          End If
          gvpersfatture.DataBind()....
Avevo subodorato che il problema non era nel binding ma nel copytodatatable nell'IIF perciò ho provato a scriverlo diversamente, successfully.
Mi piacerebbe sapere il perchè però?!