求救高手们DataGrid里DropDownList问题!!!

aiyaya 2005-10-09 04:41:51
用模版列放置一个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!

求高手解决方法!
...全文
197 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
aiyaya 2005-10-10
  • 打赏
  • 举报
回复
高手就是高手!!!
十分感谢,结贴!
singlepine 2005-10-10
  • 打赏
  • 举报
回复
那是因为你选中默认值是重复了
singlepine 2005-10-10
  • 打赏
  • 举报
回复
那是因为你选中默认值是充分了,给你个方法
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
aiyaya 2005-10-10
  • 打赏
  • 举报
回复
自己顶一下!
高手们不能帮帮忙吗?
aiyaya 2005-10-09
  • 打赏
  • 举报
回复
to: swordragon(古道热肠)

语言上没有问题,已经跟踪调试过,选择的那行程序并没有执行 if(oItem!=dgi)下的代码。

很可能是整个列的DropDownList都被试为同一个控件了!

曾想用两个DropDownList,选一的,隐藏二,选二的隐藏一,但总感觉不好!

期待高手解决!
swordragon 2005-10-09
  • 打赏
  • 举报
回复
if(!oItem.Equals(dgi))试试
自由程序员 2005-10-09
  • 打赏
  • 举报
回复
看看,但我帮你顶上去,希望有人知道

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧