209 messaggi dal 23 agosto 2007
Ciao,

in una gridView ho diversi web control (checkBox, textBox, drop down) che sono contenuti ciascusno in un itemTemplate.

In base al valore di una variabile nel codeBehind (C#) vorrei disabilitare tutti gli elementi della gridView, in modo che siano ancora visibile ma non piu' interattivi.

La mia idea sarebbe quella di intercettare l'evento "RowDataBound" e poi navigare per ogni riga la control collection e settare Enabled = false per ogni elemento? Oppure c'è un modo migliore?

Grazie
678 messaggi dal 12 maggio 2001
www.idioteca.it
e se fai una cosa del genere?

<itemtemplate>

<controlloDaGestire visible='<%# classe.funzioneCustom(parametri vari)%>' />

</itemtemplate>


in questo modo non cicli niente e con la tua funzioneCustom restituisci true o false per visualizzare o meno il tuo controllo.
ciao
Giusta l'osservazione di Giangi, ma se vuoi che siano visibili e disabilitati devi usare l'attribute Enabled. E se la tua variabile che controlla questi stati è gia un booleano non hai nemmeno bisogno del metodo custom:

<ItemTemplate>
    <asp:controllo Enabled='<%# variabile %>' runat="server" />
</ItemTemplate>

Gianluca
http://www.gianlucaesposito.it
concordo con giaesp. Ti conviene usare l'evento on data bound solo se hai effettivamente della logica da gestire, ma in uno scenario come questo ti basta semplicemente impostare la property Enabled direttamente nel template ed hai fatto :)

Davide Guida
Technical Architect @ Razorfish Healthware
http://davideguida.altervista.org
209 messaggi dal 23 agosto 2007
Ottimo ragazzi e grazie!

Effettivamente a ben pensarci mi serve solo impostare tale valore in base alla variabile lato server.

Grazie!

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.