Pagination 如何使用带有服务器端分页和搜索表单的剑道UI网格?

Pagination 如何使用带有服务器端分页和搜索表单的剑道UI网格?,pagination,kendo-ui,kendo-grid,Pagination,Kendo Ui,Kendo Grid,我有一个剑道UI网格。生成网格,但在提交搜索表单并由服务器返回响应之前,网格不会显示在页面上。响应可能导致大量行(取决于搜索参数),因此serverPaging设置为true 已设置数据源对象中的传输属性 例如: $('#resultsGrid').kendoGrid({ dataSource: { pageSize : 10, serverPaging: true, schema : { total

我有一个剑道UI网格。生成网格,但在提交搜索表单并由服务器返回响应之前,网格不会显示在页面上。响应可能导致大量行(取决于搜索参数),因此serverPaging设置为true

已设置数据源对象中的传输属性

例如:

$('#resultsGrid').kendoGrid({
    dataSource: {
        pageSize    : 10,
        serverPaging: true,
        schema      : {
            total: 'total'
        },
        transport   : {
            read: {url: '../search.x'}
        }
    }
    /*... more options*/
});

但是,页面加载时会向服务器发出AJAX调用(到../search.x)。如何在提交搜索表单时调用AJAX,并防止在加载页面时调用它?另外,当请求下一页/上一页结果时,如何让transport read使用搜索表单的原始POST参数调用服务器?

在网格初始化中将
自动绑定设置为
false
。文件


自动绑定布尔值(默认值:true)

如果设置为false,则小部件在初始化期间将不会绑定到数据源。在这种情况下,当触发数据源的更改事件时,将发生数据绑定。默认情况下,小部件将绑定到配置中指定的数据源


你能更详细地解释一下你在问题的下一页/上一页部分的意思吗。例如,假设搜索参数产生1000行数据。服务器将只返回10行数据(因为上面代码中的pageSize是10)。然后,客户机将显示这10行,并带有一个选项,用于从服务器获取接下来的10行数据。当客户端请求获取下10行时,我希望将搜索参数提供给服务器,以便它可以执行查询以获取下10行。我希望这有助于澄清,但如果您需要更多信息,请让我知道。谢谢好的,我只是想确认一下,以防您希望清除参数,因为我不确定这是否是您要求的,因为我看到您提出了一个新问题,我将在那里进一步回答/评论。谢谢。这回答了如何在页面加载时阻止调用../search.x。你知道在提交表格时我如何打电话给transport.read吗?我尝试将读取点指向一个函数,该函数获取表单的参数,并对服务器进行AJAX调用。但是,如果我试图在提交表单时调用$('#resultsGrid').data('kendoGrid').dataSource.transport.read({skip:0,take:10}),我会得到两个调用../search.x(第二个调用不传递任何POST数据)。door或。您知道不需要仅仅因为需要向服务器发送参数就手动调用AJAX吗?检查一下,谢谢。读取、查询和获取数据源函数可以正常工作。实际上,我正在使用从搜索表单自动构建AJAX参数。因此,我将transport.read设置为具有以下代码的函数:
var setupOptions={success:loadSearch,type:'POST',dataType:'json',data:{skip:options.data.skip,take:options.data.take},url:'../search.x',error:errorHandler.handle,超时:50000}$(“#搜索表单”).ajaxSubmit(设置选项)除了未正确设置总计之外,所有操作似乎都正常。我在dataSource对象中设置了
schema:{total:'total'}
,并在json响应中返回了total属性。您知道为什么没有设置total吗?不,您可以通过将
total
定义为一个函数来调试它。在该函数中,您可以调用
console.log
来显示实际数据,甚至可以尝试返回一个常量(作为双重检查)。