4 messaggi dal 03 luglio 2001
Buona sera. Seguo il forum saltuariamente ma è la prima volta che posto un problema.

Ho un db di Access con un elenco di quadri ed ho dei campi che riportano una Foreign Key di altre tabelle (Tipo di pittura, ecc).
Nelle query che utilizzo per il sito, ovviamente, mi porto dietro le tabelle collegate e mi vengono letti i relativi significati invece che le chiavi. Quando, invece, vado a compilare il datagrid dalla singola tabella, mi viene riportato solo la chiave identificativa che non è assolutamente chiara per l'operatore per fare le variazioni.

Avrei bisogno di un aiuto per impostare concretamente il datagrid. Grazie a chiunque possa darmi una mano-

Marco Banchieri
mabasoft
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,

Avrei bisogno di un aiuto per impostare concretamente il datagrid.

hai citato il "datagrid" quindi sei su Asp.NET e non su ASP Classico, giusto?
Se questo è il caso, fai in modo che l'utente possa editare il valore della foreign key usando il controllo DropDownList. In questo modo potrà scegliere la voce che desidera tra quelle presenti in un menu a tendina.
Così facendo, l'utente avrà implicitamente scelto il valore numerico (cioè l'ID) che verrà salvato nella colonna su cui hai posto la foreign key.

Questo è un esempio di DataGrid in cui ho inserito una colonna TemplateField. Al suo intero trovi la DropDownList il cui SelectedValue è bindato alla colonna numerica.
<asp:DataGrid ID="griglia" runat="server">
    <Columns>
        <asp:TemplateColumn>
            <ItemTemplate>
                <asp:DropDownList ID="FKTipoPittura" SelectedValue=<%# Bind("FKTipoPittura") %> DataValueField="IDTipoPittura" DataTextField="NomeTipoPittura" DataSource=<%# leggiTipiPitture() %> runat="server"></asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateColumn>
    </Columns>
</asp:DataGrid>

Nota inoltre che ho legato il datasource della DropDownList ad una funzione leggiTipiPitture che si occuperà di ottenere tutti i nomi delle pitture disponibili, così che l'utente potrà poi vederli elencati ed eventualmente sceglierne uno. Quindi crea la funzione nel codefile della pagina. Sarà una cosa tipo questa:
private List<TipoPittura> tipiPittura = null;
protected List<TipoPittura> leggiTipiPitture()
    {
        if (tipiPittura == null)
        {
           tipiPittura = new List<TipoPittura>();
           //qui va il codice di accesso al database che ti
           //restituisce i tipi di pittura da aggiungere alla lista
        }
        return tipiPittura;
}


ciao

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.