例外情况是: “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
答案 0 :(得分:2)
尝试在回发时绑定数据。听起来就像事件处理程序访问DropDownList时,它还没有重新填充您最初绑定到DropDownList的值。
另外,请记住尽早绑定,以便在事件处理程序开始处理之前绑定它。 OnInit或OnLoad应该足够好了。
否则,可能需要更多细节:
答案 1 :(得分:2)
每次出现此错误都是因为我匹配的键绑定我的数据不匹配。
您展示的线条可能不是问题。查看何时可能从另一个表加载记录并将其值绑定到下拉列表中。
例如,如果您的页面上有一个下拉列表,其中包含所有国家/地区名称的国家/地区ID作为后置值这些值都存储在表CountryTbl中。您还在页面上有一个网格,用户可以从中选择要编辑的另一个表中的哪个记录。假设此记录包含名称,电话号码和国家/地区等信息,并且它们全部存储在另一个表UserTbl中。当表单尝试从UserTbl绑定其数据时,它正在尝试将Country DropDownList设置为等于UserTbl的绑定值。
但是可能发生的事情,并且多次发生在我身上,就是你的UserTbl中的数据不好,就像一个不再存在的国家,或者其国家/地区字段中的其他任何值都不匹配您在国家/地区下拉列表中的值。
查看您的数据库表,看看您的“UserTbl”中是否有任何CountryIds与“CountryTbl”中的任何ContryId都不匹配。
答案 2 :(得分:1)
坏消息.....
chk this article
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=103744
答案 3 :(得分:0)
这也可能是因为您绑定到下拉列表的源数据中存在空值。