有一个基于隐藏列的非常棘手的解决方法。
执行以下步骤来初始化表。首先定义“aoColumns”:有四列:
"aoColumns": [
{ "sTitle": "Id", "mData": "id" },
{ "sTitle": "Label" "mData": "label" },
{ "sTitle": "Type", "mData": "type" },
{ "sTitle": "Name" ,"mData": "name" }]
然后定义 ajax 源,例如,为第一个单选按钮案例:
"sAjaxSource" : "/getFirstAjaxSource";
表初始化后,使用 jQuery 将第 3 列和第 4 列(在您的情况下为 "Type" 和 "Name" )设置为不可见,因此您只会看到第一列和第二列:
$(function(){
oTable.fnSetColumnVis( 2, false);
oTable.fnSetColumnVis( 3, false );
})
然后在点击处理函数中使用以下逻辑。
第一个按钮:
jQuery('#first').live('click',function () {
oTable.fnSettings().sAjaxSource = "/getFirstAjaxSource";
oTable.fnSetColumnVis( 0, true);
oTable.fnSetColumnVis( 1, true );
oTable.fnSetColumnVis( 2, false);
oTable.fnSetColumnVis( 3, false );
});
第二个按钮:
jQuery('#second').live('click',function () {
oTable.fnSettings().sAjaxSource = "/getSecondAjaxSource";
oTable.fnSetColumnVis( 0, false);
oTable.fnSetColumnVis( 1, false );
oTable.fnSetColumnVis( 2, true);
oTable.fnSetColumnVis( 3, true );
});
不要忘记为ajax源中的隐藏列添加假值。