控件DropDownlist中的项目怎么移除不了啊?

hantao2000 2003-09-12 11:40:16
有两个DropDownlist控件:dd,dd1
在Page_load中给dd和dd1添加项目。
我在dd_SelectedIndexChanged事件中dd1中的项目,可怎么移除不了
报错“集合已修改;枚举操作可能不会执行。”


using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

namespace WebApplication11
{

public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DropDownList dd1;
protected System.Web.UI.WebControls.DropDownList dd;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
ListItem lim =new ListItem ("sdfdsfd","0");
dd.Items.Add (lim);

ListItem lim1 =new ListItem ("123","1");
dd.Items.Add (lim1);
ListItem lim2 =new ListItem ("ee","0");
dd1.Items.Add (lim1);
ListItem lim3 =new ListItem ("ww","1");
dd1.Items.Add (lim);
}

private void dd_SelectedIndexChanged(object sender, System.EventArgs e)
{
foreach(ListItem lim in dd1.Items )
dd1.Items.Remove (lim);
}
}
}
...全文
102 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
仙人掌 2003-09-12
  • 打赏
  • 举报
回复
if(!IsPostBack)
{

Add[Items]
}
cyp503 2003-09-12
  • 打赏
  • 举报
回复

foreach(ListItem lim in dd1.Items )
dd1.Items.Remove (lim);

===》

this.dd1.Items.Clear();
cyp503 2003-09-12
  • 打赏
  • 举报
回复


老问题

把ListItem lim =new ListItem ("sdfdsfd","0");
dd.Items.Add (lim);

ListItem lim1 =new ListItem ("123","1");
dd.Items.Add (lim1);
ListItem lim2 =new ListItem ("ee","0");
dd1.Items.Add (lim1);
ListItem lim3 =new ListItem ("ww","1");
dd1.Items.Add (lim);
}

放在if(!this.Page.IsPostBack){}里面
2002pine 2003-09-12
  • 打赏
  • 举报
回复
wacle([Smile!]) 说得对
其实这个问题在datatable,等都是样的,你也可以这样
for(int i=0;i<ddl.Items.Count;i++)
{
ddl.Items.Remove(ddl.Items[0]);
}
当然在本题中还是用ddl.clear好
wacle 2003-09-12
  • 打赏
  • 举报
回复
certainly, this method is wrong:
foreach(ListItem lim in dd1.Items )
dd1.Items.Remove (lim);

because if you delete one item ,the dropdownlist's item collection has been changed. actually, in foreach sentence the datacollection should be static and fixed.
guoyan19811021 2003-09-12
  • 打赏
  • 举报
回复
if(!IsPostBack)
{
}
hantao2000 2003-09-12
  • 打赏
  • 举报
回复
用clear可以但用remove就出同样的错误
cyp503 2003-09-12
  • 打赏
  • 举报
回复


可以用Remove

但clear方法就能达到你的要求

hantao2000 2003-09-12
  • 打赏
  • 举报
回复
为什么不能用Remove?

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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