用模版列放置一个DropDownList,希望动态变换:如,其中一行选1,那其他行的DropDownList显示2。
代码如下:
private void MaterialGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList ddl = e.Item.FindControl("ddlMainSubstitute") as DropDownList;
ddl.SelectedIndexChanged += new EventHandler(DDL_SelectedIndexChanged);
} }
void DDL_SelectedIndexChanged(object sender,EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
DataGridItem dgi = (DataGridItem)ddl.Parent.Parent;
if(ddl.SelectedItem.Value == "1")
{
foreach(System.Web.UI.WebControls.DataGridItem oItem in MaterialGrid.Items)
{
DropDownList ddl2 = oItem.FindControl("ddlMainSubstitute") as DropDownList;
if(oItem!=dgi)
ddl2.Items.FindByValue("2").Selected = true;
}
}
}报错:DropDownList不能多选ITEMS!求高手解决方法!
代码如下:
private void MaterialGrid_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if( e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DropDownList ddl = e.Item.FindControl("ddlMainSubstitute") as DropDownList;
ddl.SelectedIndexChanged += new EventHandler(DDL_SelectedIndexChanged);
} }
void DDL_SelectedIndexChanged(object sender,EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
DataGridItem dgi = (DataGridItem)ddl.Parent.Parent;
if(ddl.SelectedItem.Value == "1")
{
foreach(System.Web.UI.WebControls.DataGridItem oItem in MaterialGrid.Items)
{
DropDownList ddl2 = oItem.FindControl("ddlMainSubstitute") as DropDownList;
if(oItem!=dgi)
ddl2.Items.FindByValue("2").Selected = true;
}
}
}报错:DropDownList不能多选ITEMS!求高手解决方法!
期待高手解决!
public static void SelectedSingleItem(System.Web.UI.WebControls.DropDownList list,string sValue )
{
foreach( ListItem item in list.Items )
{
if( item.Value == sValue )
{
item.Selected = true;
}
else
{
item.Selected = false;
}
}
}
然后把
if(oItem!=dgi)
ddl2.Items.FindByValue("2").Selected = true;
改为
if(oItem!=dgi)
SelectedSingleItem(ddl2,"2");
就可以了也可以参考版主的一个dropdownlist的例子
http://www.cnblogs.com/lovecherry/archive/2005/03/25/125525.html