C# 在回发时重新加载下拉列表

C# 在回发时重新加载下拉列表,c#,asp.net,C#,Asp.net,我正在填充页面加载下拉列表,用户选择一个项目,单击按钮(在sharepoint中创建新网站),然后我希望此新网站显示在下拉列表中,但我无法使其正常工作。项目重复或所选值为空 所以在页面上我有 getSites(); 如果页面是回发,我想用新项目重新加载下拉列表 if(Page.IsPostBack) { getSites(); } 但这当然会复制所有的值,所以我尝试了 if(Page.IsPostBack) { ddlSites.Items.Clear();

我正在填充页面加载下拉列表,用户选择一个项目,单击按钮(在sharepoint中创建新网站),然后我希望此新网站显示在下拉列表中,但我无法使其正常工作。项目重复或所选值为空

所以在页面上我有

getSites();
如果页面是回发,我想用新项目重新加载下拉列表

if(Page.IsPostBack)
{
    getSites();
}
但这当然会复制所有的值,所以我尝试了

if(Page.IsPostBack)
{
      ddlSites.Items.Clear();
      getSites();
}
但是,即使站点重新加载了所有项目,并且我选择了一个值为null,为什么会这样?我应该如何解决这个问题


干杯

页面加载中的代码在单击按钮之前执行,因此当您清除项目时,当您到达按钮单击事件时,没有选定的项目,因此它为空


您可以将ddlSites.Items.Clear()添加到getSites()方法中,然后在单击按钮后调用getSites()。

如果这是第一次加载页面,则不会有任何内容需要清除,因此这不会影响您的操作。除非我误解了什么。编辑:这是对已删除评论的回复,我并不是在自言自语。好的,所以我在我的按钮单击后添加了ddlSites.Items.Clear()和getSites(),并在if(!Page.IsPostBack){}中添加了getSites()