我有一个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'.
我试过找一个有效的例子,但我做不到。非常感谢任何帮助!
答案 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;