gridview中的c#dropdownlist selectedindexchanged设置第二个下拉列表的selectedindex

时间:2012-11-12 20:36:48

标签: c# gridview drop-down-menu selectedindexchanged

我有一个gridview,其中有两个从db填充的下拉列表。一个是描述性名称,另一个是缩写名称。我需要完成以下任务:

当我在DDL1中选择一个项目时,我需要更改所选的DDL2索引以匹配,反之亦然。

我在这里搜索过,发现了以下内容:

protected void ddlAddLabTest_SelectedIndexChanged(object sender, EventArgs e)
{
   DropDownList ddlLabTest = (DropDownList)sender;
   GridViewRow row = (GridViewRow)ddlLabTest.NamingContainer;
   DropDownList ddlAddLabTestShortName = (DropDownList)row.FindControl("ddlAddShortname");

   ddlAddLabTestShortName.SelectedIndex = intSelectedIndex;
}

只有当它进入“行”的分配时,才会收到以下内容:

Unable to cast object of type 'System.Web.UI.WebControls.DataGridItem' to type 'System.Web.UI.WebControls.GridViewRow'.

我试过找一个有效的例子,但我做不到。非常感谢任何帮助!

2 个答案:

答案 0 :(得分:6)

试试这个

protected void ddlAddLabTest_SelectedIndexChanged(object sender, EventArgs e)
{
   DropDownList ddlLabTest = (DropDownList)sender;
   DataGridItem row = (DataGridItem) ddlLabTest.NamingContainer;
   DropDownList ddlAddLabTestShortName = (DropDownList)row.FindControl("ddlAddShortname");

   ddlAddLabTestShortName.SelectedIndex = intSelectedIndex;
}

答案 1 :(得分:1)

好像NamingContainer不是一行,所以就这样吧。它已经有FindControl方法。

var row = ddlLabTest.NamingContainer;