0

我是下拉列表美妙世界的新手,我知道这对我来说很难解释,但我会尽我所能。

这是我的数据:

 **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();
4

2 回答 2

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值来确定是否重新加载)。但是,每次重新加载几乎没有什么危害,除了页面加载时间增加了几分之一秒。

于 2012-10-25T17:30:11.547 回答
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
于 2012-10-25T17:22:39.483 回答