Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41

    Formattazione Cella Datagrid

    Ciao a tutti, io avrei il classico problema di
    formattare una cella di un datagrid in base ad un valore sul database...
    Vorrei ad esempio che se sul campo TIPO del database ci fosse il valore 1
    mi apparisse un immagine altrimenti un altra.....
    Studiando un pò in giro avevo visto la possibilità di agire con l'evento
    ItemCreate
    del datagrid.....; qualcuno ha un esempio da mostrarmi?!?

    Grazie per le cortesi risposte.

  2. #2
    Vuoi solo far apparire in una colonna un'immagine diversa a seconda del valore del campo?

    Ecco qua:
    codice:
    ...
    string GetImage(string campo) {
      if ( campo == "1" ) return "img1.gif";
        else return "img0.gif";
    }
    
    ...
    
    <asp: DataGrid ...>
    ...
      <Columns>
        <asp:TemplateColumn>
          [img]<%# GetImage( DataBinder.Eval(Container.DataItem, "Campo") ) %>[/img]
        </asp:TemplateColumn>
      </Columns>
    ...
    </asp: DataGrid>
    Dal datagrid richiami il metodo GetImage che ti ritorna il nome di un'immagine in base all'argomento inviato.

    Questo in C# (come sempre) ... fammi sapere se è quello che cercavi!

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41
    si praticamente si grazie...
    lo faccio in Vb ma è = praticamente....


    Ed invece per l'itemCreate??? mi è rimasta la curiosità....

  4. #4
    Beh, ItemCreated è un evento che ti permette di fare parecchie cose ma in questo caso è sconsigliato anche perché all'interno di esso non hai a disposizione i DataItems se fai un postback.

    Viene utile per es. x formattare l'header/footer del datagrid, oppure per personalizzare la barra pager.

    Come dice il nome stesso viene richiamato ad ogni creazione di Item (Header/Footer/Item/AlternatingItem/Pager) del datagrid.

    Ecco un semplice esempio su come personalizzare la barra Pager:

    codice:
    void ItemCreated(Object sender, DataGridItemEventArgs e) {
      if ( e.Item.ItemType == ListItemType.Pager ) {
        TableCell pager = (TableCell) e.Item.Cells[0];
        for (int i=0; i < pager.Controls.Count; i+=2) {
          object o = pager.Controls[i];
          if (o is LinkButton) {
            LinkButton h = (LinkButton) o;
            h.Text = "" + h.Text + "";
          } else {
            Label l = (Label) o;
            l.Text = [ " + l.Text + " ]";
          }
        }
      }
    }
    Rende in grassetto i link con il numero di pagina, e aggiunge 2 parentesi quadre alla pagina corrente.


  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    41
    grazie perfetto
    sei stato gentilissimo
    a buon rendere

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.