我是精彩的下拉列表世界的新手,我知道这对我来说很难解释,但我会尽力而为。
这是我的数据:
**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();
答案 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