25 messaggi dal 27 luglio 2012
Buongiorno,
Ho un problema forse banale con il tabulatore, ma da solo non riesco proprio a risolvere.
In una form ho qualche controllo nella parte alta e sotto una gridview con inserimento record nel footer.
L'utente si posiziona sul primo controllo e poi con il tabulatore si sposta sugli altri.
Il problema e' che quando dall'ultimo controllo passo alla gridview, il foucus si posiziona sulle label dei titoli colonna per cui prima di arrivare ai dati si devono passare i titoli di tutte le colonne.
Io invece avrei la necessita' di passare dall'ultimo controllo subito ai dati della gridview.
Questo e' il template di una colonna:
<asp:TemplateField HeaderText="Titolo" visible="true" SortExpression="TYPE_DES" ItemStyle-HorizontalAlign="Left">
<ItemTemplate>
<asp:Label ID="lblOperazione" runat="server" Text='Operazione', "TYPE_DES")%>' ></asp:Label>
</ItemTemplate>
<FooterTemplate>
.....
</FooterTemplate>
</asp:TemplateField>

Grazie in anticipo.
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
il modo per evitare che un controllo riceva il focus quando ci si sposta col TAB, è quello di impostare l'attributo tabindex="-1"

Dato che stai usando una GridView, non hai il controllo diretto sulle label che vengono inserite nella header, ma puoi arrivarci navigando la gerarchia di controlli.

Per prima cosa gestisci l'evento OnRowCreated della GridView.
<asp:GridView OnRowCreated="MetodoRowCreated" ....


Poi crea il MetodoRowCreated nel codefile.
'Questo evento si verifica ogni volta che la GridView aggiunge una riga
Protected Sub MetodoRowCreated(sender As Object, e As GridViewRowEventArgs)
   'Mi assicuro che la riga in questione sia la header
    If e.Row.RowType = DataControlRowType.Header Then
        'Enumero i suoi controlli, che saranno delle celle
        For i As Integer = 0 To e.Row.Controls.Count-1
            'Da ogni cella estratto il primo controllo, che sarà la label
            Dim controllo = CType(e.Row.Controls.Item(i).Controls(0), IAttributeAccessor)
            'Imposto l'attributo tabindex su -1, per inibire il focus sul TAB
            controllo.SetAttribute("tabindex", "-1")
        Next
    End If
End Sub


ciao,
Moreno

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.