【问题标题】:kendoui:grid - set pager on top and bottom of the gridkendo ui:grid - 在网格的顶部和底部设置页面
【发布时间】:2014-01-13 22:25:47
【问题描述】:

有一种简单的情况找不到解决办法。 Kendo-UI 只在底部实现了网格分页。我试图让它在顶部显示寻呼机,但它变得不可点击。 我认为我的克隆部分是错误的,但不知道如何修复它。在此先感谢各位。

这里是脚本和jsp的一部分...

<kendo:grid name="grid" pageable="true" dataBound="onBound">
    <kendo:dataSource serverPaging="true" serverSorting="true">
        <kendo:dataSource-transport>
            <kendo:dataSource-transport-read url="api/items" />
        </kendo:dataSource-transport>
        <kendo:dataSource-schema data="data" total="total" />
    </kendo:dataSource>
    <kendo:grid-columns>
        <kendo:grid-column title="id" field="itemId"></kendo:grid-column>
    </kendo:grid-columns>
</kendo:grid>



<script type="text/javascript">
    function onBound() {
        var grid = $("#grid");
        grid.find(".k-grid-pager")
            .clone()
            .insertBefore(grid.find(".k-grid-header"))
            .addClass("pagerTop").css("border-width", "0 0 1px 0");
    }   
</script>

【问题讨论】:

    标签: javascript jquery kendo-ui kendo-grid


    【解决方案1】:

    试试这个,希望对你有帮助。

    function BindTopPager(e) {
    
        var gridView = $('#grid').data('kendoGrid'),
            pager = $('#div .k-pager-wrap'),
            id = pager.attr('id') + '_top',
            $grid = $('#grid'),
            topPager;
    
        if (gridView.topPager === null) {
            // create top pager div
            topPager = $('<div/>', {
                'id': id,
                'class': 'k-pager-wrap pagerTop'
            }).insertBefore($grid.find('.k-grid-header'));
    
            // copy options for bottom pager to top pager
            gridView.topPager = new kendo.ui.Pager(topPager, $.extend({}, gridView.options.pageable, { dataSource: gridView.dataSource }));
    
            // cloning the pageable options will use the id from the bottom pager
            gridView.options.pagerId = id;
    
            // DataSource change event is not fired, so call this manually
            gridView.topPager.refresh();
        }
    }
    
    var grid = $("#grid").data("kendoGrid");
    grid.bind("dataBound", BindTopPager);
    grid.dataSource.fetch();
    

    DEMO

    【讨论】:

      【解决方案2】:

      我使用了上面的代码并进行了一些调整以使其工作。我把它做成了一个JS方法。

      function moveNavigationToTopOnGrid(gridSelector) {
          var grid = $(gridSelector).data("kendoGrid"),
              pager = $(gridSelector + ' .k-pager-wrap'),
              id = pager.prop('id') + '_top',
              $grid = $(gridSelector);
      
          if (!grid.topPager) {
              // create top pager div
              topPager = $('<div/>', {
                  'id': id,
                  'class': 'k-pager-wrap pagerTop'
              }).insertBefore($grid);
      
              // copy options for bottom pager to top pager
              grid.topPager = new kendo.ui.Pager(topPager, $.extend({}, grid.options.pageable, { dataSource: grid.dataSource }));
      
              // cloning the pageable options will use the id from the bottom pager
              grid.options.pagerId = id;
      
              // DataSource change event is not fired, so call this manually
              grid.topPager.refresh();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-18
        • 2020-10-09
        • 1970-01-01
        相关资源
        最近更新 更多