当前位置: 首页 > 面试题库 >

如何在重新加载数据表时传递参数

沈博涉
2023-03-14
问题内容

我有一个像这样初始化的数据表:

mytable = DataTable({
        ajax:{
            url: "/url/getTableData",
            dataSrc: ""

        },
        sortClasses: false,
        paging: false,
        scrollY: 300,
        columns: cols
    });

以后我想做

mytable.ajax.reload();

它工作正常,但现在我想在该请求中发送一些参数。这些参数仅在重新加载时才需要,而在表的初始化中则不需要。我怎么做?谢谢!


问题答案:

选项1- 使用preXhr.dt事件。

table = $('#example')
    .on('preXhr.dt', function ( e, settings, data ) {
        data.whateveryouwant = $("#someidhere").val()
        data.anotherexample = "kittens"
    } )
// then just setup your datatable as normal
    .DataTable({
        ajax:{
            url: "/url/getTableData",
            type: "GET" // This is the default value, could also be POST
        },
        sortClasses: false,
        paging: false,
        scrollY: 300,
        columns: cols
});

看到这里http://datatables.net/reference/event/

选项2(首选) -使用ajax.data函数。

table = $('#example').DataTable({
    ajax:{
        url: "/url/getTableData", // Change this URL to where your json data comes from
        type: "GET", // This is the default value, could also be POST, or anything you want.
        data: function(d) {
            d.whateveryouwant = $("#someidhere").val()
            d.anotherexample = "kittens"
        }

    },
    sortClasses: false,
    paging: false,
    scrollY: 300,
    columns: cols
});

两种选择都会产生相同的结果。您的服务器将不知道区别。额外的数据将添加到每个table.ajax.reload()。额外的数据将是:

whateveryouwant具有#someidhere元素的值,并且

anotherexample 具有价值 "kittens"

我更喜欢 Option 2 ,因为很明显,在每个请求上都添加了额外的数据。第一种选择有点偷偷摸摸,对于其他人,我认为阅读您的代码并不那么明显。



 类似资料:
  • 问题内容: 使用require加载模块时可以传递参数吗? 我有提供登录功能的login.js模块。它需要数据库连接,并且我希望在所有模块中使用相同的数据库连接。现在,我导出一个函数login.setDatabase(…),该函数可让我指定数据库连接,并且工作正常。但是我宁愿在加载模块时传递数据库和其他要求。 我对NodeJS相当陌生,通常使用Java和Spring Framework进行开发,所以

  • 问题内容: 在flask中,我可以这样做: 并且如果foo.html包含,页面将会显示。但是,如果有一条通往foo的路线怎么办: 在这种情况下,如果我仍然希望这种逻辑发生,那么进入foo.html的唯一方法是通过: 因此,如何使该变量传递到路由,这样我不必在加载路由之前重写重写该路由计算的逻辑代码? 问题答案: 你可以将消息作为显式URL参数传递(正确编码),也可以在重定向之前将消息存储到(coo

  • 问题内容: 例如,我希望此导航更改可重新加载状态: 但我不希望此导航重新加载状态: 根据ui-router文档,设置应可完成此操作,但请尝试以下操作。当为时,即使文档说应该更改路径参数,它也不会重新加载状态。 Plunkr:http: //run.plnkr.co/ZPy9uabYlkMilwdS/#/param 问题答案: 这是UI-Router中的错误,已在0.2.15版中修复: https:

  • 问题内容: 我有一个Maven项目,运行命令 mvn后,安装 所有项目以及模块编译并成功复制到本地存储库。但是现在我想在tomcat6中运行生成的Web应用程序。客户端为tomcat提供了一些参数,例如一旦项目启动,这些参数将在内部使用。但是我不知道如何在tomcat6中设置这些附加参数。下面是我的开发环境 操作系统= Windows Tomcat = Tomcat 6.0.27 请帮我? 问题答

  • 问题内容: 我正在遵循Template- expanding指令 的示例 一切正常。现在,我尝试将概念扩展如下。 app.js index.html EmployeeRelatedData.html DepartmentRelatedData.html 我正在寻找输出 我无法解决的错误是什么?谢谢。 问题答案: 您犯了一些错误,请在此处查看工作演示 http://plnkr.co/edit/RQ1

  • 问题内容: 我有一个登录屏幕,我想将登录ID从LoginController传递到MainController,因此我可以访问一些功能来更改密码和其他功能。 我这样加载控制器: Main.fxml绑定到MainController.java。有没有一种方法可以传递所需的用户ID,并在控制器的initialize()方法上对其进行访问? 问题答案: 用FXMLLoader加载控制器后,可以在调用sh