Javascript 在xp:table控件上启动datatables
在XPage上,我有一个表组件: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}"); $("#
<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">