谁帮我解决一道asp.net的题,关于服务器控件应用

来源:百度知道 编辑:UC知道 时间:2024/07/02 02:57:31
很简单:往页面上托一个PlaceHolder控件和一个按钮,这个按钮的单击事件代码是这样的:
DropDownList dl = new DropDownList();
dl.ID = "ddl1";
PlaceHolder1.Controls.Clear();
PlaceHolder1.Controls.Add(dl);
dl.Items.Add("北京");
dl.Items.Add("邯郸");
dl.Items.Add("香港");

第一次单击按钮的时候倒是出来了北京,邯郸,香港的项,为什么再次单击的时候 会一直累加这些项,很不明白??
按钮每次单击的时候,会新NEW一个DropDownList 类 然后PlaceHolder1清除,然后在往里加一个新的DropDownList 难道不是吗??怎么会出现累加

PlaceHolder1.Controls.Clear();//你只是清掉了他的内容。应该是清掉他的项
//清掉项是:
dl.Items.Clear();

DropDownList dl = new DropDownList();
dl.ID = "ddl1";
dl.Items.Clear();
dl.Items.Add("北京");
dl.Items.Add("邯郸");
dl.Items.Add("香港");

PlaceHolder1.Controls.Clear();
PlaceHolder1.Controls.Add(dl);

要不加上if(Ispostback)试试。
if(Ispostback)
{
DropDownList dl = new DropDownList();
dl.ID = "ddl1";
PlaceHolder1.Controls.Clear();
dl.Items.Clear();
PlaceHolder1.Controls.Add(dl);
dl.Items.Add("北京");
dl.Items.Add("邯郸");
dl.Items.Add("香港");

}

你虽然把placeholder清空控件了 但是dropdownlist里面的内容你没有清空 当然是累加的了