下拉列表数据源

Posted

技术标签:

【中文标题】下拉列表数据源【英文标题】:DropdownList DataSource 【发布时间】:2012-12-15 19:54:19 【问题描述】:

大家好,我对下拉列表有疑问。我正在使用带有数据源的下拉列表。我怎样才能得到我选择的那个值?

// 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();
     

【问题讨论】:

您列出的代码与您提出的问题并不真正匹配。我们需要知道下拉列表的名称/ID、您使用的数据源类型以及您将数据源绑定到下拉列表的方式,以便有效地回答这个问题。 【参考方案1】:

您可以使用List, Dictionary, Enum, DataSet DataTable 以不同的方式绑定 DropDownList。 在绑定下拉列表的数据源时,您必须考虑三件事。

    DataSource - 数据集或数据表或您的数据源的名称 DataValueField - 这些字段将被隐藏 DataTextField - 这些字段将显示在 dropdwon 上。

您可以使用以下代码将下拉列表作为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();

如果你想处理下拉列表的选择,那么你必须改变AutoPostBack="true"你可以使用SelectedIndexChanged事件来编写你的代码。

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)

    string strQUIZ_ID=DropDownList1.SelectedValue;
    string strQUIZ_Name=DropDownList1.SelectedItem.Text;
    // Your code..............

【讨论】:

【参考方案2】:
protected void Page_Load(object sender, EventArgs e)

    if (!Page.IsPostBack)
    
        drpCategory.DataSource = CategoryHelper.Categories;
        drpCategory.DataTextField = "Name";
        drpCategory.DataValueField = "Id";
        drpCategory.DataBind();
    

【讨论】:

稍微解释一下就好了。看看***.com/help/how-to-answer【参考方案3】:

请参阅此链接中的示例。可能对你有帮助。

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);

  

【讨论】:

【参考方案4】:

这取决于您如何设置下拉菜单的默认值。使用选定的值,但您必须设置选定的值。例如,我使用表/列表的名称和 id 字段填充数据源。我将选定的值设置为 id 字段,并将显示设置为名称。当我选择时,我得到 id 字段。我用它来搜索关系表并找到实体/记录。

【讨论】:

以上是关于下拉列表数据源的主要内容,如果未能解决你的问题,请参考以下文章

access 下拉列表联动

js拼接实现下拉列表框

下拉列表数据源

关于web中下拉列表的几种实现方法

从下拉列表中显示数据php

JqG​​rid 根据另一个 jqgrid 下拉列表中的选定数据在下拉列表中添加值