代码之家  ›  专栏  ›  技术社区  ›  scrot

SelectedValue无效-列表-C#/ASP.NET中不存在

  •  1
  • scrot  · 技术社区  · 17 年前

    “Country”的SelectedValue无效,因为它不在项目列表中。

    UserService.DsUserAttributes dsCountry = us_service.GetUserAttributeDropDown(systemId, "Country");
    Country.DataSource = dsCountry.tblDropDownValues;
    Country.DataTextField = "AttrValue";
    Country.DataValueField = "Id";
    Country.DataBind();
    

    dsCountry.tblDropDownValues中包含的值为:

    Id                                      AttrValue       AttrName
    aefa28e0-a118-11dd-ad8b-080c210c9a66    PLEASE SELECT   Country
    213a743e-ea0b-419c-bd44-03b1c35241b3    USA         Country
    eefa1387-8dc0-11d8-975f-13da67a41a5d    CANADA          Country
    
    4 回复  |  直到 17 年前
        1
  •  2
  •   Jay S    17 年前

    尝试在回发时绑定数据。听起来好像当事件处理程序访问DropDownList时,没有使用最初绑定到DropDownList的值重新填充它。

    否则,可能需要更多详细信息:

    1. 异常何时发生?在呈现期间,还是在事件处理程序中的回发上?
    2. 什么时候绑定数据?
        2
  •  2
  •   AndyG    17 年前

    每次我出现这个错误都是因为我用来绑定数据的密钥不匹配。

    例如,如果您的页面上有一个下拉列表,其中包含所有国家名称,后面的国家ID为值,则这些值都存储在表CountryTbl中。页面上还有一个网格,用户可以在其中从另一个表中选择要编辑的记录。假设此记录包含姓名、电话号码和国家等信息,并且全部存储在另一个表UserTbl中。当表单试图从UserTbl绑定其数据时,它试图将您的国家/地区DropDownList设置为等于UserTbl的绑定值。

    查看数据库表,看看“UserTbl”中是否有与“CountryTbl”中的contryid不匹配的countryid。

        3
  •  0
  •   Ken Ray    17 年前

    推荐文章