根据数据库设置DropDownList的选定值

本文关键字:DropDownList 数据库 设置 | 更新日期: 2023-09-27 17:58:15

我在网格视图中有一个下拉列表,当文本框更改时,我希望下拉列表中的选定值(总共三个单独的值)与数据库中的数据匹配。文本框更改事件中的代码如下:

protected void TextBox1_TextChanged(object sender, EventArgs e)
    {
        DropDownList ddl = new DropDownList();
        string connectionString = ConfigurationManager.ConnectionStrings["*******"].ConnectionString;
        using (SqlConnection con = new SqlConnection(connectionString))
        {
            string query = "SELECT one, two, three FROM table WHERE id = " + TextBox1.Text;
            SqlDataAdapter sda = new SqlDataAdapter(query, con);
            DataSet ds = new DataSet();
            int num = sda.Fill(ds);
            if (num > 0)
            {
                GridView1.Visible = true;
                GridView1.DataSource = ds;
                GridView1.DataBind();
            }
            else
            {
                if (num == 0)
                {
                    GridView1.Visible = false;
                }
                else
                {
                    BindGrid();
                }
            }
        }

根据数据库设置DropDownList的选定值

尝试使用RowDataBound事件。要使其工作,下拉列表中必须已经填充了值,并且在这种情况下,将分配SelectedValue

protected void GridView1_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow)
    {
        // this assumes the drop-down-list columns are the first, second, and third columns (ordinal positions 0, 1, and 2)
        DropDownList ddl1, ddl2, ddl3;
        ddl1 = (DropDownList)e.Row.Cells[0].Controls[0];
        ddl2 = (DropDownList)e.Row.Cells[1].Controls[0];
        ddl3 = (DropDownList)e.Row.Cells[2].Controls[0];
        DataRow currentRow = (DataRow)e.Row.DataItem;
        ddl1.SelectedValue = currentRow[0].ToString();
        ddl2.SelectedValue = currentRow[1].ToString();
        ddl3.SelectedValue = currentRow[2].ToString();
    }
}