【问题标题】:Kendo UI Grid - serverside pagination with PHPKendo UI Grid - 使用 PHP 的服务器端分页
【发布时间】:2013-08-23 11:19:48
【问题描述】:

任何人都可以帮助我的 Grid 工作,以便一次拉出并显示 50 行吗?它当前显示 50 行,但不显示任何页码。我在数据源中总共包含了 120 个,但不知道从哪里开始。如何显示页码并将$start, $limit 变量传递给我的查询是获取数据?

它应该说“120 个项目中的 1 - 50 个”它说“没有要显示的项目”

我卡住了。 :0(

var mydata =  {"data":[

        <?php foreach ($data_arr as $data){ ?>
            { "id": "<?php echo $data['id']; ?>",  "name":"<?php echo $data['surname'] . ', ' . $data['firstname']; ?>",  "company": "<?php echo $data['company']; ?>",   "Email": "<?php echo $data['email']; ?>"},
        <?php 
        }
        ?>
        ]       , "total": <?=$total?>};
>       
>       
>         $("#grid").kendoGrid({
>             dataSource: {
>                 data: mydata.data,
>                 schema: {
>                   total: "total",
>                     model: {
>                         fields: {
>                             id: { type: "number" },
>                             name: { type: "string" },
>                             company: { type: "string" },
>                             email: { type: "email" }
>                         }
>                     }
>                 },
>                 pageSize: 50
>             },            serverPaging: true,
>             scrollable: false,
>             sortable: true,
>             filterable: true,             selectable: "row",
>           detailTemplate: kendo.template($("#detailTemplate").html()),
>             detailInit: detailInit,
>             pageable: {refresh: true,},           
>             columns: [
>                 {field:"id",title: "ID",filterable: false},
>                 {field: "name",title: "Name"}, 
>                 {field: "company",title: "Company"}, 
>                 {field: "email",title: "Email"}             
>             ]                 
>         });

然后是服务器端 PHP,它似乎没有从 URL 中获取任何东西:

//从URL获取当前页面
$get = $_SERVER['REQUEST_URI']; parse_str($get);
如果(isset($page)){ $开始 = $页;

$limit = $pagesize;
} $admin = new Admin();

$count_data = $admin->countRows(); //带回 120
$mydata= $admin->getRows($start=0,$limit=50);

【问题讨论】:

    标签: php pagination kendo-ui kendo-grid


    【解决方案1】:

    网格的数据源未针对服务器绑定进行配置。您必须配置 transport.read 选项以提供将返回分页数据的 url。数据源将发布页面和页面大小。

    这是一个在线演示,您可以查看:http://demos.kendoui.com/web/grid/remote-data.html

    【讨论】:

    • 嗨,谢谢。然而,页码现在正在工作,因为执行这些更改似乎破坏了我拥有的 OnClick 功能。你脑子里有什么想法,为什么会这样?非常感谢。
    【解决方案2】:

    试试这个从 url 获取变量:

    $start = $_GET['page'];
    $limit = $_GET['pagesize'];
    

    应该可以的

    【讨论】:

    • 这些在 URL 中不存在,我认为这是问题所在。没有显示页面链接/按钮,我假设他们会将这些变量传递给 URL,然后一切正常。
    • @LeeTee 您可以自己将其放入 url 中进行测试:?page=0&pagesize=50
    • 是的,我明白了。问题是网格没有显示任何页码,因此不能自己修改 URL。
    • 我总共有 120 行,想在 50 年代将它们带出,它带出了前 50 行,但不显示任何页码。它应该说 120 项中的 1 到 50 项,它说“没有要显示的项目”
    猜你喜欢
    • 2017-01-19
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 2023-03-10
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    相关资源
    最近更新 更多