我反复遇到此问题,却不知道是什么原因造成的。我在DataBind中得到一个异常:SelectedValue which is invalid because it does not exist in the list of items

以下是一些重要的信息:

  • 当基础数据更改时,我会定期重新加载listOrgs。
  • Organization.DTListAll调用返回2个Int,String对。
  • 返回的数据中没有重复或空值
  • 在下面的前两行之后,listOrgs.Items.Count为0,并且Selected Value为0
  • DataBind操作执行后的所选值是数据
  • 中第一行的ID值
  • 此异常在重新加载页面后第一次执行此代码时发生

  • listOrgs.Items.Clear();
    listOrgs.SelectedValue = "0";
    listOrgs.DataSource = new Organization().DTListAll(SiteID);
    listOrgs.DataTextField = "OrganizationName";
    listOrgs.DataValueField = "OrganizationID";
    listOrgs.DataBind();
    

    最佳答案

    显然我发布的解决方案并不完全有效...最终在我的应用程序中,我更改为:

    listOrgs.Items.Clear();
    listOrgs.SelectedIndex = -1;
    listOrgs.SelectedValue = null;
    listOrgs.ClearSelection();     // Clears the selection to avoid the exception (only one of these should be enough but in my application I needed all..)
    listOrgs.DataSource = new Organization().DTListAll(SiteID);
    listOrgs.DataTextField = "OrganizationName";
    listOrgs.DataValueField = "OrganizationID";
    listOrgs.DataBind();
    

    07-27 14:56