mirror of
https://gitee.com/coder-xiaomo/flashsale
synced 2025-09-12 23:11:38 +08:00
73 lines
3.2 KiB
JavaScript
73 lines
3.2 KiB
JavaScript
var TableAjax = function () {
|
|
|
|
var initPickers = function () {
|
|
//init date pickers
|
|
$('.date-picker').datepicker({
|
|
rtl: Metronic.isRTL(),
|
|
autoclose: true
|
|
});
|
|
}
|
|
|
|
var handleRecords = function() {
|
|
|
|
var grid = new Datatable();
|
|
grid.init({
|
|
src: $("#datatable_ajax"),
|
|
onSuccess: function(grid) {
|
|
// execute some code after table records loaded
|
|
},
|
|
onError: function(grid) {
|
|
// execute some code on network or other general error
|
|
},
|
|
dataTable: { // here you can define a typical datatable settings from http://datatables.net/usage/options
|
|
/*
|
|
By default the ajax datatable's layout is horizontally scrollable and this can cause an issue of dropdown menu is used in the table rows which.
|
|
Use below "sDom" value for the datatable layout if you want to have a dropdown menu for each row in the datatable. But this disables the horizontal scroll.
|
|
*/
|
|
//"sDom" : "<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'<'table-group-actions pull-right'>>r>t<'row'<'col-md-8 col-sm-12'pli><'col-md-4 col-sm-12'>r>>",
|
|
|
|
"aLengthMenu": [
|
|
[20, 50, 100, 150, -1],
|
|
[20, 50, 100, 150, "All"] // change per page values here
|
|
],
|
|
"iDisplayLength": 20, // default record count per page
|
|
"bServerSide": true, // server side processing
|
|
"sAjaxSource": "demo/table_ajax.php", // ajax source
|
|
"aaSorting": [[ 1, "asc" ]] // set first column as a default sort by asc
|
|
}
|
|
});
|
|
|
|
// handle group actionsubmit button click
|
|
grid.getTableWrapper().on('click', '.table-group-action-submit', function(e){
|
|
e.preventDefault();
|
|
var action = $(".table-group-action-input", grid.getTableWrapper());
|
|
if (action.val() != "" && grid.getSelectedRowsCount() > 0) {
|
|
grid.addAjaxParam("sAction", "group_action");
|
|
grid.addAjaxParam("sGroupActionName", action.val());
|
|
var records = grid.getSelectedRows();
|
|
for (var i in records) {
|
|
grid.addAjaxParam(records[i]["name"], records[i]["value"]);
|
|
}
|
|
grid.getDataTable().fnDraw();
|
|
grid.clearAjaxParams();
|
|
} else if (action.val() == "") {
|
|
Metronic.alert({type: 'danger', icon: 'warning', message: 'Please select an action', container: grid.getTableWrapper(), place: 'prepend'});
|
|
} else if (grid.getSelectedRowsCount() === 0) {
|
|
Metronic.alert({type: 'danger', icon: 'warning', message: 'No record selected', container: grid.getTableWrapper(), place: 'prepend'});
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
return {
|
|
|
|
//main function to initiate the module
|
|
init: function () {
|
|
|
|
initPickers();
|
|
handleRecords();
|
|
}
|
|
|
|
};
|
|
|
|
}(); |