【问题标题】:Is it possible to update this ListBox without Postback after the database records change?数据库记录更改后是否可以在不回发的情况下更新此 ListBox?
【发布时间】:2014-02-27 11:41:34
【问题描述】:

我的后端有一个 VB.NET 网页,它有一个动态填充的 ASP ListBox Web 控件。数据库记录通过模态/对话框中的表单更改后,是否可以在没有回发的情况下更新此 ListBox?

我应该尝试哪种方式,是否有与问题/概念相关的主题?

【问题讨论】:

    标签: asp.net ajax vb.net


    【解决方案1】:

    我知道可以使用的 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 网络表单,这可能会很痛苦。

    【讨论】:

    • 那么我不需要做 2 秒检查我是否只想在特定弹出窗口/对话框提交新记录后更新一次框,所以 Ajax 方法对我来说会更好.. 我我对吗?我的问题是,如果我有一个更新记录的 Web 方法和客户端 jQuery,我该如何在 ListBox 等列表元素中应用它?
    • 如果你有一个触发器(弹出框),那么是的,你可以执行一个 ajax 调用,解析响应数据并在你的 html 上进行更改,而无需每 X 秒执行一次 ajax。我用一个小的 jquery 示例编辑了我的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-23
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多