调用 tableAdapter 的 Fill() 方法时如何防止 selectedValue 更改?
我已将列表框绑定到一些数据。
问题是当我调用 myTableAdapter.Fill(..) 方法时,SelectedValue 更改为列表中第一个项目 ID。 虽然VS中的“选定值”没有绑定到任何地方(见图)。 替代文本 http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png< /a>
请问我该如何防止这种行为?
非常感谢您的帮助。
I have bound my ListBox to some data.
The problem is when I call myTableAdapter.Fill(..) method, SelectedValue changes to whatever is the first item ID in the list. Although "Selected Value" in VS is not bound anywhere (see image).
alt text http://img370.imageshack.us/img370/2548/ss20090108212745qz2.png
How do I prevent this behaviour, please?
Thank you very much for helping.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您不应该对每个请求都具有约束力。 如果由于某种原因您绝对必须绑定每个请求,则必须手动在 ListBox 上设置 SelectedIndex。 这是因为 Fill 方法首先清除列表,然后为获取的数据创建新的列表项。
You shouldn't be binding on each request. If you absolutely have to bind on each request for some reason you have to set SelectedIndex on the ListBox manually. This is because the Fill method first clears the list then creates new list items for the fetched data.
我能想到的最简单的方法是将表适配器填充代码更改为如下所示:
如果该项目不再存在,您将遇到问题,因此您可能需要添加一个条件来检查该情况。
The simplest way I can think of is to change your table adapter fill code to something like this:
You will run into an issue if the item doesn't exist anymore, so you may want to add a condition to check for that.