我已将我的 ListBox 绑定到一些数据。
问题是当我调用 myTableAdapter.Fill(..) 方法时,SelectedValue 更改为列表中的第一个项目 ID。尽管 VS 中的“选定值”未绑定到任何地方(见图)。 替代文字 http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
请问如何防止这种行为?
非常感谢您的帮助。
我已将我的 ListBox 绑定到一些数据。
问题是当我调用 myTableAdapter.Fill(..) 方法时,SelectedValue 更改为列表中的第一个项目 ID。尽管 VS 中的“选定值”未绑定到任何地方(见图)。 替代文字 http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
请问如何防止这种行为?
非常感谢您的帮助。
您不应该对每个请求都具有约束力。如果出于某种原因您绝对必须绑定每个请求,则必须手动在 ListBox 上设置 SelectedIndex。这是因为 Fill 方法首先清除列表,然后为获取的数据创建新的列表项。
我能想到的最简单的方法是将表格适配器填充代码更改为如下内容:
string preSelected = myDropDownList.SelectedValue;
myTableAdapter.Fill(myDataTable);
myDropDownList.SelectedValue = preSelected;
如果该项目不再存在,您将遇到问题,因此您可能需要添加一个条件来检查它。