【发布时间】:2014-02-27 11:41:34
【问题描述】:
我的后端有一个 VB.NET 网页,它有一个动态填充的 ASP ListBox Web 控件。数据库记录通过模态/对话框中的表单更改后,是否可以在没有回发的情况下更新此 ListBox?
我应该尝试哪种方式,是否有与问题/概念相关的主题?
【问题讨论】:
我的后端有一个 VB.NET 网页,它有一个动态填充的 ASP ListBox Web 控件。数据库记录通过模态/对话框中的表单更改后,是否可以在没有回发的情况下更新此 ListBox?
我应该尝试哪种方式,是否有与问题/概念相关的主题?
【问题讨论】:
我知道可以使用的 2 种方法是 ajax 和 websockets。
在 2 个 ajax 中最简单,但它会产生更多开销,因为它将由客户端驱动。
您的客户端将每秒向服务器提交一个 ajax 请求,每 2 秒 ...
如果服务器有新数据,它将返回此数据,并且您的客户端 JavaScript 代码可以处理响应并创建新行等。
从 HTML5 开始,您还可以使用 websockets。 Websockets 是服务器驱动的,所以没有开销。但是启动 websocket 服务器比 ajax 更新/更复杂。
不要让那吓到你!
This is a small websocket example
Here is an ajax implementation with jquery
*update :假设您正在使用 webforms(这使您的 html 代码更加模糊,因此您的解决方案更加复杂 hint go mvc hint)您也可以选择asp updatePanels.
它们基本上是执行 ajax 调用,但在复杂场景中实现可能会很痛苦(例如动态生成的数据;))
*更新2:
可以使用 jquery 更改您的 html 客户端。
向选择框添加值的示例:
$('#listbox').append('<option value="5">item 5</option>');
但要注意使用网络表单时出现的问题!您是新字段,并且控件必须符合 asp.net 网络表单,这可能会很痛苦。
【讨论】: