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.