web-dev-qa-db-fra.com

DropdownList DataSource

Salut tout le monde, j'ai un problème avec la liste déroulante. J'utilise une liste déroulante avec une source de données. Comment puis-je obtenir cette valeur que j'ai sélectionnée?

// I need a if statement here because my programme doesn't know which value of dropdown list selected and I don't know how to use this with datasource.

if(//if I select quiz 1 from dropdown list ,quiz 1 should list questions.)

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["RegConnectionString"].ConnectionString);

string chooce = "Select Quiz from tblQuiz where Quiz=1 ";
SqlCommand userExist = new SqlCommand(chooce, con);
con.Open();
int temp = Convert.ToInt32(userExist.ExecuteScalar().ToString());

if (temp == 1)
{
    if (rbList.Items[0].Selected == true)
    {
        string cmdStr = "Select Question from tblQuiz where ID=1";
        SqlCommand quest = new SqlCommand(cmdStr, con);
        lblque.Text = quest.ExecuteScalar().ToString();
        con.Close();
    } 
8
Alijohnn

Vous pouvez lier DropDownList de différentes manières en utilisant List, Dictionary, Enum, DataSet DataTable.
Principal, vous devez considérer trois choses lors de la liaison de la source de données d'une liste déroulante.

  1. DataSource - Nom de l'ensemble de données ou table de données ou de votre source de données
  2. DataValueField - Ces champs seront masqués
  3. DataTextField - Ces champs seront affichés sur le dropdwon.

vous pouvez utiliser le code suivant pour lier une liste déroulante à une source de données en tant que datatable:

  SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);

    SqlCommand cmd = new SqlCommand("Select * from tblQuiz", con);

    SqlDataAdapter da = new SqlDataAdapter(cmd);

    DataTable dt=new DataTable();
    da.Fill(dt);

    DropDownList1.DataTextField = "QUIZ_Name";
    DropDownList1.DataValueField = "QUIZ_ID"

    DropDownList1.DataSource = dt;
    DropDownList1.DataBind();

si vous souhaitez traiter la sélection de la liste déroulante, vous devez modifier AutoPostBack="true" vous pouvez utiliser l'événement SelectedIndexChanged pour écrire votre code.

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    string strQUIZ_ID=DropDownList1.SelectedValue;
    string strQUIZ_Name=DropDownList1.SelectedItem.Text;
    // Your code..............
}
30
Arshad
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        drpCategory.DataSource = CategoryHelper.Categories;
        drpCategory.DataTextField = "Name";
        drpCategory.DataValueField = "Id";
        drpCategory.DataBind();
    }
}
4
ibrahim ozboluk

Reportez-vous à l'exemple sur ce lien. Cela peut vous être utile.

http://msdn.Microsoft.com/en-us/library/system.web.ui.webcontrols.dropdownlist.aspx

void Page_Load(Object sender, EventArgs e)
  {

     // Load data for the DropDownList control only once, when the 
     // page is first loaded.
     if(!IsPostBack)
     {

        // Specify the data source and field names for the Text 
        // and Value properties of the items (ListItem objects) 
        // in the DropDownList control.
        ColorList.DataSource = CreateDataSource();
        ColorList.DataTextField = "ColorTextField";
        ColorList.DataValueField = "ColorValueField";

        // Bind the data to the control.
        ColorList.DataBind();

        // Set the default selected item, if desired.
        ColorList.SelectedIndex = 0;

     }

  }

void Selection_Change(Object sender, EventArgs e)
  {

     // Set the background color for days in the Calendar control
     // based on the value selected by the user from the 
     // DropDownList control.
     Calendar1.DayStyle.BackColor = 
         System.Drawing.Color.FromName(ColorList.SelectedItem.Value);

  }
2
dekdev

Cela dépend de la façon dont vous définissez les paramètres par défaut pour la liste déroulante. Utilisez la valeur sélectionnée, mais vous devez définir la valeur sélectionnée. Par exemple, je remplis la source de données avec le nom et le champ id pour la table/liste. J'ai défini la valeur sélectionnée sur le champ id et l'affichage sur le nom. Lorsque je sélectionne, j'obtiens le champ id. Je l'utilise pour rechercher une table relationnelle et trouver une entité/un enregistrement.

0
Prissy