C#DropDownList列出数值

本文关键字:C#DropDownList | 更新日期: 2023-09-27 18:08:20

我有一个下拉列表,它的填充方式如下:

cmd.CommandText = "select * from dbo.pelischool";
                        SqlDataAdapter da = new SqlDataAdapter(cmd);
                        DataSet ds = new DataSet();
                        da.Fill(ds);
                        DropDownList1.DataTextField = ds.Tables[0].Columns["schoolName"].ToString();
                        DropDownList1.DataSource = ds.Tables[0];
                        DropDownList1.DataBind();

现在我想读取所选项目的列表编号(以便将其放入查询中(。因此,虽然我的下拉列表中有"牛津大学"、"麻省理工大学"answers"西蒙·弗雷泽大学"等值,但我希望单击列表中的一个项目,将该项目的值存储在列表中。更具体地说,如果单击第一个项目,则int数字=1。如果单击第二项,则int数=2。

有可能用这样的东西来完成吗:

DropDownList1.SelectedItem.????;

感谢您抽出时间!

C#DropDownList列出数值

您没有将bind项的值绑定到dropdownlist,因此需要将其绑定。

像这个

DropDownList1.DataValueField = ds.Tables[0].Columns["Column name that contain the value of Item"].ToString();

然后你可以使用来获得它的值,就像下面的一样

string item_value = DropDownList1.SelectedValue;

如果您想要选择值,则使用

DropDownList1.SelectedValue

如果你想要选择的项目,那么使用

DropDownList1.SelectedItem

除了Nitin Kumar的答案外,所选项目文本还可以通过以下方式获得:

var selectedText = DropDownList1.SelectedItem.Text;

选定值

var selectedValue = DropDownList1.SelectedValue;
    cmd.CommandText = "select * from dbo.pelischool";
                            SqlDataAdapter da = new SqlDataAdapter(cmd);
                            DataSet ds = new DataSet();
                            da.Fill(ds);
                            DropDownList1.DataTextField = ds.Tables[0].Columns["schoolName"].ToString();
                            DropDownList1.DataValueField = ds.Tables[0].Columns["SomeValueColumn or id column"];
                            DropDownList1.DataSource = ds.Tables[0];
                            DropDownList1.DataBind();

然后你可以使用。。。

string id = DropDownList1.SelectedValue.ToString();

试试这个。

 cmd.CommandText = "select id,schoolName from dbo.pelischool";
 SqlDataAdapter da = new SqlDataAdapter(cmd);
 DataTable dt = new DataTable();
 da.Fill(dt );
 if (dt != null)
        {
            if (dt.Rows.Count > 0)
            {
                ddlPosition.DataSource = dt;
                ddlPosition.DataTextField = "schoolName";
                ddlPosition.DataValueField = "Id";
                ddlPosition.DataBind();
            }
        }