Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/445.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在xp:table控件上启动datatables_Javascript_Datatables_Xpages - Fatal编程技术网

Javascript 在xp:table控件上启动datatables

Javascript 在xp:table控件上启动datatables,javascript,datatables,xpages,Javascript,Datatables,Xpages,在XPage上,我有一个表组件: <xp:table id="tblProposals"> <xp:scriptBlock id="scriptInitProposals"> <xp:this.value><![CDATA[$(document).ready(function() { var tableId = x$("#{id:tblProposals}"); $("#

在XPage上,我有一个表组件:

<xp:table id="tblProposals">
<xp:scriptBlock id="scriptInitProposals">
                                <xp:this.value><![CDATA[$(document).ready(function() {

    var tableId = x$("#{id:tblProposals}");
    $("#" + tableId.get(0).id).DataTable();
initProposals("#" + tableId.get(0).id,"getProposals");
    $('table th:first').removeClass('sorting_asc');
});]]></xp:this.value>
                            </xp:scriptBlock>
当我选择id为的普通html表时(例如,运行scriptblock:

<xp:scriptBlock id="scriptInitProposals">
                                <xp:this.value><![CDATA[$(document).ready(function() {
    $('#tblProposals').DataTable();
    initProposals("#tblProposals","proposals");
    $('table th:first').removeClass('sorting_asc');
});]]></xp:this.value>
                            </xp:scriptBlock>

表格生成得很好

datatables插件似乎对动态id不太满意,或者我遗漏了什么吗?

如果我没有弄错的话,你从
x$(“{id:tblProposals}”)中得到的不是id而是DOM jQuery包装的DOM对象

然后,重复调用
DataTable()
两次:在调用
initpropositions
之前以及在它内部。我想您可以删除一个

此时,您可能希望更改传递给
initpropositions
的内容,即id或对象,或其中任何一个,然后在方法中处理它。 你可以这样做:

<xp:scriptBlock value="$(document).ready(function() {
        initProposals('#{id:tblProposals}', 'getProposals');
        $('table th:first').removeClass('sorting_asc');
    });"/>

我们正在使用styleClass属性初始化DataTable插件。您可以尝试使用此方法作为替代方法

在客户端javascript上:

 $(".dtb").dataTable({
桌上

<xp:table styleClass="table dtb">


Hi Shillem,我知道我不应该在星期天工作,但我只想感谢你的帮助。你的建议起到了作用。必须与DOM有关。主要问题是XPages在ID中生成冒号。如果你想在jquery中使用它们,需要对其进行转义…请参阅
 $(".dtb").dataTable({
<xp:table styleClass="table dtb">