0

我已将我的 ListBox 绑定到一些数据。

问题是当我调用 myTableAdapter.Fill(..) 方法时,SelectedValue 更改为列表中的第一个项目 ID。尽管 VS 中的“选定值”未绑定到任何地方(见图)。 替代文字 http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png

请问如何防止这种行为?

非常感谢您的帮助。

4

2 回答 2

1

您不应该对每个请求都具有约束力。如果出于某种原因您绝对必须绑定每个请求,则必须手动在 ListBox 上设置 SelectedIndex。这是因为 Fill 方法首先清除列表,然后为获取的数据创建新的列表项。

于 2009-08-17T16:40:55.183 回答
1

我能想到的最简单的方法是将表格适配器填充代码更改为如下内容:

string preSelected = myDropDownList.SelectedValue;
myTableAdapter.Fill(myDataTable);
myDropDownList.SelectedValue = preSelected;

如果该项目不再存在,您将遇到问题,因此您可能需要添加一个条件来检查它。

于 2009-08-17T16:50:26.710 回答