+ Rispondi al Thread
Visualizzazione dei risultati da 1 a 2 su 2

Discussione: visualizzare un campo di un record in una label

  1. #1
    panatronic non è in linea Scolaretto
    Post
    109

    visualizzare un campo di un record in una label

    Buongiorno a tutti.

    Ho un GridView collegat un SqlDataSet che preleva i dati da una tabella con questi campi:

    Data
    Titolo
    Testo

    ho attivato l'opzione Attiva_Selezione.

    Ora vorrei che in una Label sotto al GridView venga inserito il contenuto del campo Testo del record selezionato nel GridView.

    Come posso farlo? Non riesco a capire cosa fa il "CommandField" Seleziona e come usarlo.

    Se cè un altro metodo per arrivare a ciò che mi serve, va bene: devo realizzare un elenco di comunicazioni e selezionado una, mi deve dare il testo completo nella label o TxtBox.
    Grazie
    Pranzo Stefano
    via S. Onofrio 23
    Castrignano dei Greci LECCE

  2. #2
    L'avatar di SignIn
    SignIn non è in linea Scribacchino
    Luogo
    Milano
    Post
    1,026
    Ciao Pana,
    anche in questo caso hai diverse vie che puoi percorrere.
    Personalmente cercherei di non scatenare un postback( se poi vuoi usare i commandField cerca sul forum ci dovrebbe essere un qualche mio esempio), anche perchè in questo preciso scenario è assolutamente inutile avere un round trip con il server.
    Per evitare il postback allora devi un pò giocare con js(non sò come sei messo in tal senso).
    Per esempio se il markup della tua pagina aspx è simile al seguente:
    codice:
    <asp:GridView ID="GridView1" runat="server">
    </asp:GridView>
    <asp:Label ID="lblTesto" runat="server" Text=""></asp:Label>
    in cui hai la gridview con id = GridView1 e un controllo label con id lblTesto.
    Alla griglia puoi implementare l'evento OnRowDataBound nel quale vai a definire a livello di riga l'evento js: onclick che scatterà quando premi con il tasto sinistro su una qualsiasi riga:
    codice:
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
                e.Row.Attributes.Add("onclick", "SelectRow( this, '" + e.Row.Cells[2].Text + "')");
        }
    Alla funzione js SelectRow passo la riga e il testo da mostrare nella label(la cella 2 corrisponde nel mio caso alla cella contenente il testo).
    Ora non rimane che implementare nella pagina aspx la funzione javascript SelectRow:
    codice:
    <script type="text/javascript">
        function SelectRow( row, testo)
        {
            var griglia = document.getElementById( "GridView1");
            for( var i=0; i<griglia.rows.length; i++)
            {
                griglia.rows[i].bgColor = "";
            }
            row.bgColor = "red";
            var element = document.getElementById( "lblTesto");
            element.innerText = testo;
        }
        </script>
    La funzione nello specifico è estremamente semplice. nella prima parte ripulisco lo style dell'eventuale riga selezionata in precedenza. Imposto un colore di sfondo della riga passata come parametro(qui puoi divertirti come meglio credi). Infine setto il testo del controllo label.

+ Rispondi al Thread

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi