當DataTable資料接回來時候 需做的動作
//初始化的前20筆
function GetOrderTtrNoCount20()
{
var data =
{
"CusNo":Account
};
var sendData =
{
"value":JSON.stringify(data)
}
$.ajax(
{
url: "Your URL",
type: "post",
data:sendData,
datatype: 'jsonp',
success: function(data)
{
//如果資料回傳為 NoData 我則不做動作(NoData是我預設無值時後回傳)
if(jQuery.parseJSON(data) != "NoData")
{
//宣告要接收資料的陣列
arcTtrNo = new Array();
//將資料轉換出來存放至陣列
arcTtrNo = jQuery.parseJSON(data);
//先判斷是否DataTable已經使用 如有責清除
if ( $.fn.dataTable.isDataTable( '#mytable' ) )
{
$('#mytable').DataTable().destroy();
}
//要繪製成TABLE用來存放的變數
var DtTree ="";
for(var i = 0 ; i < arcTtrNo.length ; i++)
{
//繪製TABLE
var strTemp = '';
strTemp+='<tr><td>'+arcTtrNo[i]["PickupDat"]+'</td>';
strTemp+='<td>'+arcTtrNo[i]["RelTtrSno"]+'</td>';
strTemp+='<td>'+arcTtrNo[i]["Nti"]+'</td>';
strTemp+='<td>'+arcTtrNo[i]["AgSqr"]+'</td>';
strTemp+='<td>'+arcTtrNo[i]["AgSqrAdr"]+'</td>';
strTemp+='<td>'+arcTtrNo[i]["Money"]+'</td>';
//在Checkbox 宣告時候 ,加入onChange並加入當下陣列索引參數.
strTemp+= '<td><input type="checkbox" name="id[]" value="'+ i+ '" onchange="fun_chk_change('+i+')" ></td>';
strTemp+='</td></tr>';
DtTree+=strTemp;
//帶入預設值 false 未選取 主要是用來記錄使用者是否選取過
arcTtrNo[i]["SelectCheck"] = false;
}
$('#MyContent1').html(DtTree);
//套上DataTable 並預設排序
$('#mytable').DataTable(
{
"order": [0,'desc']
});
}
else
{
//如果沒資料
$('#MyContent1').html("");
alert('查无资料');
}
},
error:function()
{
alert("<?=$this->lang->line('OSNetIsConnErr')?>");
});
}
使用者選取分頁變動時候
//分頁畫面變動時候 把值 set 回去
$('#mytable').on( 'draw.dt', function ()
{
//取出DataTable裡面 元素是 checkbox的
var Data = $('#MyContent1 input:checkbox').each(function ()
{
//取得目前索引位置 跟原始陣列判斷是否重複
var vValue = $(this).val().toString();
//原始陣列索引比對 看是否勾選過 如有就打勾(選取)
for(var i = 0 ; i < arcTtrNo.length ; i++)
{
//如果兩個索引相同
if(i.toString() ==vValue)
{
//因為有選取過,所以要將此chekbox 的 checked = true;
$(this).context.checked = arcTtrNo[i]["SelectCheck"];
//因為只會比對到一次 即可退出 增加速度
break;
}
}
});
} );
取得使用者有選取的Checkbox.
//取得變更值
function fun_chk_change(IndexNum)
{
//跑原始陣列
for(var i = 0; i < arcTtrNo.length; i++)
{
//如果跟使用者選取相同
if(i == IndexNum)
{
var onOff = arcTtrNo[i]["SelectCheck"].toString();
//判斷當下是什麼 將值修改
if(onOff == "true")
{
arcTtrNo[i]["SelectCheck"] = false;
}
else
{
arcTtrNo[i]["SelectCheck"] = true;
}
}
}
}
取出所有選取的checkbox的相關值
function SelectAll()
{
//宣告要存放的陣列
arcAll=new Array();
var d=0;
//原始陣列
for (var i=0; i <arcTtrNo.length; i++)
{
//如果此物件欄位為 true 則執行紀錄
if(arcTtrNo[i]["SelectCheck"])
{
//除此方式可使用 push 直接將所需值丟入.
arcAll[d]=arcTtrNo[i]["RelTtrSno"];
d++;
}
}
}