【问题标题】:Listbox items client side reordering not reflected in server side (ASP.NET)列表框项目客户端重新排序未反映在服务器端 (ASP.NET)
【发布时间】:2010-01-05 18:07:17
【问题描述】:

我使用 Javascript 对列表框中的一些项目进行了重新排序。当我在后面的代码(ASP.NET)中读取回发中的项目时,顺序是原始顺序。 Javascript 操作后如何获得与屏幕显示相同的顺序?

【问题讨论】:

    标签: asp.net ajax viewstate client-side webforms


    【解决方案1】:

    只有选定的项目将被发送回服务器,订单将从视图状态中提取(您的 javascript 不会更改)。我不确定你能以这种方式做你想做的事。您可能必须有一个单独的 [隐藏] 字段来告诉服务器事物的顺序。

    【讨论】:

      【解决方案2】:

      您的 JavaScript 必须使用 AJAX 通知服务器重新排列,然后您必须手动跟踪订单。这是相当简单的,但它确实意味着在每个页面加载时重新生成列表框项,而不是依赖于 ViewState。

      【讨论】:

      • 我选择在每次用户重新订购商品时回发并在后面的代码中进行重新订购。回传很简单,回传很快。
      • 如果您将该组件放入 UpdatePanel 并将 AsyncPostBackTrigger 连接到回发生成事件(总共是一个微不足道的 3-4 行 HTML 更改),ASP.NET 将无形地将此回发转换为 AJAX更新。
      【解决方案3】:

      使用 JavaScript 代码,您可以将订单存储在隐藏变量中(使隐藏变量成为服务器 HiddenField 变量)并在页面回发到服务器时处理订单。然后,您可以清除这些项目并使用存储在隐藏字段中的此数字序列适当地重新排序它们。这就是 AJAX 控件的作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-03-02
        • 2011-07-02
        • 2012-09-25
        • 2017-03-21
        • 2018-12-15
        • 2021-04-01
        • 1970-01-01
        相关资源
        最近更新 更多