Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67

    Popolare Dropdownlist con campi concatenati

    Salve, ho una dropdownlist che ha come origine dati un objectdatasource.
    Vorrei che la DataTextField contenesse più campi concatenati, ad esempio nome + cognome.
    Potrei risolvere concatenandoli direttamente nella query, ma non c'è un altro modo?
    Ho provato così:

    <asp: DropDownList ID="ddlpersonale" runat="server"
    DataSourceID="ObjectDataSource1" DataTextFields="NOME,COGNOME" DataTextFormatString="{0} - {1}"
    DataValueField="ID" >

    In questo modo però visualizzo solo l'ID, come posso risolvere?
    Grazie

  2. #2
    non puoi farlo da design sulla pagina aspx.

    Puoi scegliere di farlo dentro il metodo che ti restituisce i riultati

    oppure (visto che stai usando un objectdatasource vuol dire che hai una classe ed un metodo da chiamare), sganciarlo dal datasource e fare il bind nel Load() o Bind() della pagina, chiamando da codice il metodo che usi per l'ojectdatasource e bindare a mano le proprietà della dropdownlist.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Per provare ho modificato la query nel tableadapter con i campi che vanno concatenati, scrivendola così:
    SELECT CONCAT(NOME, CONCAT(' ', COGNOME)) AS NOMECOGNOME...

    mentre in questo modo NOME || ' ' || COGNOME AS NOMECOGNOME mi dava errore

    e poi da design ho potuto assegnare il nuovo campo che contiene nome e cognome.

    Come potrei fare a bindare a mano? Qual è la sintassi per fare riferimento ai valori contenuti del tableadapter?

  4. #4
    a mano intendevo senza ObjectDataSource, ma nel load della pagina.
    una cosa tipo questa:
    codice:
    if (!IsPostBack)
    {
        DataTable dt = BusinessClass.BusinessMethod();
        foreach (DataRow dr in dt.Rows)
        {
            ListItem item = new ListItem();
            item.Text = string.Concat(dr["colonna1"].ToString(), " ", dr["colonna2"].ToString());
            item.Value = dr["colonna3"].ToString();
            MyDropDownList.Items.Add(item);
        }
    }

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    67
    Originariamente inviato da Gluck74
    a mano intendevo senza ObjectDataSource, ma nel load della pagina.
    una cosa tipo questa:
    codice:
    if (!IsPostBack)
    {
        DataTable dt = BusinessClass.BusinessMethod();
        foreach (DataRow dr in dt.Rows)
        {
            ListItem item = new ListItem();
            item.Text = string.Concat(dr["colonna1"].ToString(), " ", dr["colonna2"].ToString());
            item.Value = dr["colonna3"].ToString();
            MyDropDownList.Items.Add(item);
        }
    }
    Ok, grazie.

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.