22 messaggi dal 04 settembre 2008
Ho l'esigenza di popolare un DropDownList con dati presi da una tabella con due campi (chiave e nome) tramite codice c#!

Ho trovato degli esempi ma non andavano.

Si tratta di una web part. Il problema è in quali metodi inserire il codice.
Cerco esempi semplici, grazie!

Help please!
puoi specificare meglio il problema?

comunque a grandi linee puoi eseguire l'override del metodo CreateChildControls della WebPart, li crearla da codice aggiungerla alla collezione dei controlli e associrale ai dati

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
12 messaggi dal 11 settembre 2008
potresti fare una cosa del genere:

nel cs

protected void Page_Load(Object Src, EventArgs E) 
    {
        SqlConnection myConnection;

        myConnection = new SqlConnection("");
 
        if (!IsPostBack) 
        {
            SqlDataAdapter myCommand = new SqlDataAdapter("select distinct categoria from tblCategory" , myConnection);

            DataSet ds = new DataSet();
            myCommand.Fill(ds, "select");

            MySelect.DataSource= ds.Tables["select"].DefaultView;
            MySelect.DataBind();
        }
    }


nel aspx :


 <select id="MySelect" datatextfield="Categoria" 
       runat="server" style="width: 122px" datavaluefield="Categoria"/>




con 2 campi nn so..vorresti riempire ogni item con 2 campi?
Modificato da webmauro2.0 il 11 settembre 2008 16.18 -
22 messaggi dal 04 settembre 2008
Grazie mille per i vostri consigli.
Qui sotto trovate il codice (con le parti importanti) di modo da capire meglio il mio problemino.
Non mi è molto chiaro il concetto di override. Puoi darmi qualche spunto per favore.
Proverò a fare come mi hai suggerito con la porzione di codice.
Ho intenzione di mettere due campi nella dropdownlist (uno come indice, la chiave primaria auto_id che è autoincrementale e un campo che verrà visualizzato, cioè auto_nome).
Comunque visto che lavoro con le web part di sharepoint, toccare le pagine aspx è un impresa dura, si comportano come non dovrebbero.
Per cui sono costretto (fino a prova contraria) a lavorare solo con C#.
Grazie ancora.


namespace WebPart12
{
    [Guid("1dd693c3-4b4f-475d-af03-a0bccadd0523")]
    public class WebPart12 : System.Web.UI.WebControls.WebParts.WebPart
    {
        public WebPart12()
        {
            this.ExportMode = WebPartExportMode.All;
        }

        protected Label lblAutomobile = new Label();
        protected DropDownList ddlAutomobile = new DropDownList();
        protected Button btnConferma = new Button();
        protected override void OnInit(System.EventArgs e)
        {
            base.OnInit(e);

            lblAutomobile.ID = "lblAutomobile";
            lblAutomobile.Text = "Sala";
            Controls.Add(lblAutomobile);

            ddlAutomobile.ID = "ddlAutomobile";
            ddlAutomobile.Load += new EventHandler(ddlAutomobili_Load);
            Controls.Add(ddlAutomobile);
        }

        void ddlAutomobili_Load(object sender, EventArgs e)
        {
            string strQuery = "SELECT auto_id, auto_nome FROM Automobili;";
            SqlConnection connessione = new SqlConnection("Data Source=NomeServer;Initial Catalog=NomeDatabase;Integrated Security=True");
            {
                SqlCommand commando = new SqlCommand(strQuery, connessione);
                connessione.Open();
                SqlDataReader leggi = commando.ExecuteReader();

                try
                {
                    int i = 0;
                    while (leggi.Read())
                    {
                        ddlAutomobile.Items.Insert(i++, new ListItem(leggi["auto_nome"].ToString()));

/*qui sarebbe desiderato fare qualcosa tipo:
ddlAutomobile.Items.Insert(leggi["auto_id"], new ListItem(leggi["auto_nome"].ToString()));
al posto della variabile int i */
                    }
                }
                finally
                {
                    leggi.Close();
                }
            }
        }


        protected override void Render(HtmlTextWriter writer)
        {
            writer.Write("<table><tr><td>");
            lblAutomobile.RenderControl(writer);
            writer.Write("</td></tr><tr><td>");
            ddlAutomobile.RenderControl(writer);
            writer.Write("</td></tr>");
        }
    }
}

Modificato da sharepointhelp il 11 settembre 2008 18.02 -
Modificato da sharepointhelp il 11 settembre 2008 18.13 -
22 messaggi dal 04 settembre 2008
Non funziona... qcl altro aiutino?
22 messaggi dal 04 settembre 2008
void ddlAuto_Load(object sender, EventArgs e)
        {
                try
                {
                    SqlConnection cn = new SqlConnection(this.stringaDiConnessione);
                    SqlCommand cmd = new SqlCommand("select auto_nome from Automobili", cn);
                    SqlDataAdapter adp = new SqlDataAdapter(cmd);
                    DataSet ds = new DataSet();
                    adp.Fill(ds);
                    this.ddlAuto.DataSource = ds.Tables[0].DefalutView;
                    this.ddlAuto.DataBind();
                }
                catch (Exception ex)
                {
                    this.ddlAuto.DataSource = null;
                    this.ddlAuto.DataBind();
                    lblError.Visible = true;
                    lblError.ForeColor = Color.Red;
                    lblError.Text = ex.Message;
                }
        }


DOVE SBAGLIO?? HELP!
Mi mostra nella drop System.Data.DataRowView per ogni campo ritornato... ma non il campo
Modificato da sharepointhelp il 12 settembre 2008 10.28 -
Modificato da sharepointhelp il 12 settembre 2008 10.29 -
22 messaggi dal 04 settembre 2008
if (!Page.IsPostBack)
            {
                SqlConnection cn = new SqlConnection(this.stringaDiConnessione);
                SqlCommand cmd = new SqlCommand("select auto_nome from Automobili", cn);
                SqlDataReader reader = cmd.ExecuteReader();

                try
                {

                    int i = 1;
                    string Auto = string.Empty;
                    ddlAuto.Items.Insert(0, new ListItem("Selezionare automobile..."));
                    while (reader.Read())
                    {
                        Auto = reader["auto_nome"].ToString();
                        ddlAuto.Items.Insert(i++, new ListItem(Auto));
                    }
                }
                catch (Exception ex)
                {
                    this.ddlAuto.DataSource = null;
                    this.ddlAuto.DataBind();
                    lblError.Visible = true;
                    lblError.ForeColor = Color.Red;
                    lblError.Text = ex.Message;
                }
                finally
                {
                    reader.Close();
                }
            }


perchè non va neanche questo... please help!
22 messaggi dal 04 settembre 2008
riuscito!

void ddlAutomobile_Load(object sender, EventArgs e)
        {
            SqlConnection cn = new SqlConnection(this.stringaDiConnessione);
            SqlCommand cmd = new SqlCommand("select auto_nome from Automobili", cn); //adp.RecordsAffected
            cn.Open();
            SqlDataReader adp = cmd.ExecuteReader();
            try
            {
                ddlAutomobile.Items.Clear();
                int i = 0;
                ddlAutomobile.Items.Insert(i++, new ListItem("Selezionare un'automobile..."));
                while (adp.Read())
                {
                    auto = adp["auto_nome"].ToString();
                    ddlAutomobile.Items.Insert(i++, new ListItem(auto));
                }

            }
            catch (Exception ex)
            {
                lblError.Visible = true;
                lblError.ForeColor = Color.Red;
                lblError.Text = ex.Message;
            }
            finally
            {
                adp.Close();
            }
        } 

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.
Community
Ultimi messaggi
UTENTI ONLINE
    In primo piano

    I più letti di oggi

    Media
    In evidenza
    MISC