使用特定值和sql查询中的值数组填充下拉列表

时间:2012-10-25 17:06:47

标签: c# asp.net

我是精彩的下拉列表世界的新手,我知道这对我来说很难解释,但我会尽力而为。

这是我的数据:

 **Type**   **ID**  **Status**
  Letter      1         A
  Letter      2         B
  Letter      3         C
  Letter      4         D
  Letter      5         E

从我的查询结果中返回“3”的ID,我的下拉列表显示“C”。我已经完成了这件作品:)。我的问题是,如何使用状态填充下拉列表?我的DDL将显示“C”,当单击箭头时,将显示其余的状态值。

这是可以用sql查询完成的吗?我是否必须创建单独的方法?如果有人可以指出我正确的方向或提供一些非常棒的有用代码!这是我的代码:

SqlDataAdapter adapter = new SqlDataAdapter("SELECT Status FROM dbo.database WHERE ID = @ID AND Type = 'Letter'", mySqlConnection1);
adapter.SelectCommand.Parameters.Add("@ID", SqlDbType.Char).Value = lblID.Text;
adapter.Fill(test);

ddlStatus.DataSource = test;
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = Status";
ddlStatus.DataBind();

2 个答案:

答案 0 :(得分:1)

我认为这就是你要找的东西:

SqlDataAdapter adapter = new SqlDataAdapter(
    "SELECT ID, Status FROM dbo.database WHERE Type = 'Letter'", 
    mySqlConnection1);
adapter.Fill(test);

ddlStatus.DataSource = test;
ddlStatus.DataTextField = "Status";
ddlStatus.DataValueField = "ID";
ddlStatus.DataBind();

ddlStatus.SelectedValue = lblID.Text;

首先,使用您需要的值填充DropDownList,然后设置SelectedValue以自动显示该值。根据我的理解,您希望状态显示给用户,但实际选择的值应该是ID。

根据您对ViewState的使用情况,您可能只需要加载一次DropDownList(首次加载页面时),然后在此之后设置SelectedValue。 (您需要在第二页加载时重新加载列表。使用IsPostBack值来确定是否重新加载)。但是,每次重新加载的危害很小,除了在页面加载时间中添加一小部分时间。

答案 1 :(得分:0)

我认为你要找的是SelectedValue

 ddlStatus.DataSource = test;
 ddlStatus.DataTextField = "Status";
 ddlStatus.DataValueField = "ID";
 ddlStatus.DataBind();

 //Add this line
 string defaultValue = "3";
 ddlStatus.SelectedValue = defaultValue; //C has ID of 3
相关问题