【问题标题】:Sorting a paginated table built with KnockoutJS by column按列对使用 KnockoutJS 构建的分页表进行排序
【发布时间】:2013-05-26 11:13:34
【问题描述】:

我正在尝试通过单击列标题来了解如何对表格进行排序。我尝试在我的 ViewModel 中创建一个方法,该方法将按名称排序以开始,但没有成功。

我尝试了以下方法,但它似乎并没有真正做任何事情:

list.sort(function(left, right) { return left.name== right.name? 0 : (left.name< right.name? -1 : 1) })

这是我当前的代码:

http://jsfiddle.net/TsgyJ/

例如,我想单击“名称”标题并使其按升序排序,然后再次单击并使其按降序排序。

【问题讨论】:

    标签: c# asp.net-mvc-4 twitter-bootstrap mvvm knockout.js


    【解决方案1】:

    这是您的工作示例:http://jsfiddle.net/tkirda/TsgyJ/1/

    HTML:

      <thead>
        <th data-bind="click: sort.bind($data, 'id') ">ID</th>
        <th data-bind="click: sort.bind($data, 'name') ">Name</th>
        <th data-bind="click: sort.bind($data, 'email') ">Email</th>
        <th data-bind="click: sort.bind($data, 'city') ">City</th>
        <th data-bind="click: sort.bind($data, 'created') ">Created</th>
      </thead>
    

    JavaScript:

    self.sort = function (key) {
        sortDir = sortDir * -1;
        self.list.sort(function (a, b) {
            return sortDir * (a[key] == b[key] ? 0 : (a[key] < b[key] ? -1 : 1));
        });
        self.moveToPage(1);
    };
    

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 1970-01-01
      • 2017-10-29
      • 1970-01-01
      • 1970-01-01
      • 2015-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多