以编程方式更改数据绑定下拉列表

时间:2010-08-30 16:34:05

标签: asp.net drop-down-menu

我有一个下拉列表,它在数据库表的页面加载事件中填充。

下拉列表将DataTextField设置为项目名称,将DataValueField设置为项目ID(整数)。

稍后我在gridview的selectedindexchanged事件中使用此代码更改dropdowlist所选项目

GridViewRow row = GridView1.SelectedRow;
ddlProjectList.SelectedItem.Text = row.Cells[2].Text;

使用此代码更改下拉列表是否会导致DataValueField属性也更改为正确的项目ID号?如果不是,有更好的方法吗?

============================================= EDIT 实际上这个代码似乎是在列表中添加一个额外的项目,以便我用这个代码设置的项目列出两次,所以我不认为我的代码是正确的

3 个答案:

答案 0 :(得分:0)

设置SelectedItem.Text实际上不会通过文本更改所选项目,它会更改当前所选项目的文本。您需要使用ddl.Items.FindItemByText(或者它可能是目前的FindByText,我忘了)找到该项,然后将ListItem.Selected属性设置为true。

HTH。

答案 1 :(得分:0)

这不会改变DropDownList中所选项目的文本。是否要更改项目的文本和值,或者是否要从DropDownList中选择与网格中选定行相关的项目?

要更改项目名称和ID,您必须在ProjectList后面的数据源中更改它。但是,如果您只想选择相关项目,可以使用:

var row = GridView1.SelectedRow;

if (ProjectList.Items.FindByText(row.Cells[2].Text) != null)
{
    ProjectList.ClearSelection();
    ProjectList.Items.FindByText(row.Cells[2].Text).Selected = true;
}

答案 2 :(得分:0)

你可以做到

ddlProjectList.FindByText(row.Cells[2].Text).Selected = true;

这实际上会设置它。