即时更改设置值?

Posted

技术标签:

【中文标题】即时更改设置值?【英文标题】:Change settings value on the fly? 【发布时间】:2011-02-23 22:49:18 【问题描述】:

是否可以即时更改 jQuery DataTables 设置值。我的问题是下一个,我需要即时更改sAjaxSource。已经尝试过这样的事情:

var oDefault = 
    "bServerSide": true,
    "bProcessing": true,
    "bJQueryUI": true,
    "bLengthChange": false,
    "bFilter": true,
    "iDisplayLength": 8,
    "sAjaxSource": "my.php?" + "idKat="+aData[3],
    "aaSorting": [[ 0, "asc" ],[ 3, "asc" ]],
    "sDom": '<"top"ir>t<"bottom"pf<"clear">',
    "sPaginationType": "full_numbers",
    "oLanguage": 
        "sUrl": "<?php echo $full_path_jezik_2;?>"
    ,
    "aoColumns": [
         "sName": "rb","sWidth": "15%", "sClass": "center","sType": "numeric" ,
         "sName": "chkZaBrisanje","sWidth": "20%", "sClass": "center", "bSortable":false ,
         "sName": "rbPrvaSlika","sWidth": "15%", "sClass": "center","bSortable":false  ,
         "sName": "nazivSlike","sWidth": "50%", "sClass": "center", "sSortDataType": "dom-text"  
    ]
;

var oST = $.extend( true, , oDefault );
oST.sAjaxSource = "my.php?" + "idKat="+aData[3];

alert(oST.sAjaxSource);

if (typeof oTable == 'undefined') 
    oTable = $("#my-table").dataTable(oST);

else
               
    oTable.fnDraw();
 

我的aData[3] 会在点击时更改。

【问题讨论】:

【参考方案1】:

你试过了吗

 oTable = $("#my-table").dataTable(oST);
 var oSettings = oTable.fnSettings();
 oSettings.sAjaxSource  = "new value";

【讨论】:

没关系,它是 fnSettings().oFeatures.bProcessing,但如果在初始化期间设置为 false,它似乎很麻烦。 @Dan - 你如何影响更新?与table.ajax.reload();table.draw();。我无法让它工作。【参考方案2】:

您可以使用 fnReloadAjax() 函数,请参阅官方数据表网站上的插件。

【讨论】:

【参考方案3】:

对于 DataTables 1.10+

使用如下所示的ajax.url() API 方法设置Ajax URL 并立即从新源加载数据:

var table = $('#example').DataTable(
    ajax: 'data.json'
);

table.ajax.url('newData.json').load();

对于 DataTables 1.9

使用fnReloadAjax() 插件从Ajax 源重新加载表的数据。请注意,此插件已被弃用。

【讨论】:

以上是关于即时更改设置值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 laravel 中以编程方式即时设置 .env 值

在 Java 客户端中“即时”更改 derbyDB 架构

在 Vue 应用程序中动态更改语言环境不会更新页面上的翻译值

即时更改音量

即时更改视图的路径

Eclipse 即时检测外部文件更改