我有一个下拉列表,它在数据库表的页面加载事件中填充。
下拉列表将DataTextField设置为项目名称,将DataValueField设置为项目ID(整数)。
稍后我在gridview的selectedindexchanged事件中使用此代码更改dropdowlist所选项目
GridViewRow row = GridView1.SelectedRow;
ddlProjectList.SelectedItem.Text = row.Cells[2].Text;
使用此代码更改下拉列表是否会导致DataValueField属性也更改为正确的项目ID号?如果不是,有更好的方法吗?
============================================= EDIT 实际上这个代码似乎是在列表中添加一个额外的项目,以便我用这个代码设置的项目列出两次,所以我不认为我的代码是正确的
答案 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;
这实际上会设置它。