重新加载回发下拉列表

Nic*_*ick 3 c# asp.net

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

所以在page_load我有

getSites();
Run Code Online (Sandbox Code Playgroud)

如果页面是回发,我想重新下载新项目的下拉列表

if(Page.IsPostBack)
{
    getSites();
}
Run Code Online (Sandbox Code Playgroud)

但这当然会重复所有的价值观,所以我试过了

if(Page.IsPostBack)
{
      ddlSites.Items.Clear();
      getSites();
}
Run Code Online (Sandbox Code Playgroud)

但即使网站重新加载所有项目,我选择一个值为null,为什么这样做,我该怎么做才能解决这个问题?

干杯

Fis*_*ake 6

Page_Load中的代码在单击按钮之前执行,因此当您清除项目时,当您进入按钮单击事件时没有选定的项目,因此它为空.

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