我已将ListBox绑定到某些数据。
问题是当我调用myTableAdapter.Fill(..)方法时,SelectedValue会更改为列表中第一个项目ID。虽然VS中的“选定值”不受任何限制(见图)。 alt text http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
请问如何阻止此行为?
非常感谢您的帮助。
答案 0 :(得分:1)
您不应该对每个请求绑定。如果由于某种原因绝对必须绑定每个请求,则必须手动在ListBox上设置SelectedIndex。这是因为Fill方法首先清除列表,然后为获取的数据创建新的列表项。
答案 1 :(得分:1)
我能想到的最简单的方法是将表适配器填充代码更改为:
string preSelected = myDropDownList.SelectedValue;
myTableAdapter.Fill(myDataTable);
myDropDownList.SelectedValue = preSelected;
如果该项目不再存在,您将遇到问题,因此您可能需要添加条件来检查该项目。