DataTable in Angular Way
11:41Introduction
Hi friends, In this post I want to show you how to use Data table with AngularJS.
<link href="bootstrap.min.css" rel="stylesheet" /> Download
<link href="font-awesome.min.css" rel="stylesheet" /> Download
<link href="datatable.css" rel="stylesheet" /> Download
<script src="jquery.min.js"></script> Download
<script src="angular.min.js"></script> Download
<script src="bootstrap.min.js"></script> Download
<script src="datatable.js"></script> Download
<script src="app.js"></script>
HTML
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
<link href="bootstrap.min.css" rel="stylesheet" />
<link href="font-awesome.min.css" rel="stylesheet" />
<link href="datatable.css" rel="stylesheet" />
<script src="jquery.min.js"></script>
<script src="angular.min.js"></script>
<script src="bootstrap.min.js"></script>
<script src="datatable.js"></script>
<script src="app.js"></script>
</head>
<body ng-app="ngAppDemo">
<div class="container-fluid" style="margin-left:15%;margin-right:15%;">
<div class="row">
<h1 align=center>Data Table With Angular JS</h1><br>
<div ng-controller="ngAppDemoController">
<div class="col-md-12 col-lg-12" ultimate-datatable="datatable"></div>
</div>
</div>
</div>
</body>
</html>
app.js
angular.module('ngAppDemo', ['DataTableServices']).controller('ngAppDemoController', ['$scope', 'datatable', function ($scope, datatable) {
//Simple example of configuration
var datatableConfig = {
"name": "simple_datatable",
"columns": [
{
"header": "Name",
"property": "Name",
"order": true,
"type": "text", // "text"/"number"/"month"/"week"/"time"/"datetime"/"range"/"color"/"mail"/"tel"/"date"
"edit": true,
"position": 0,
//"convertValue": {
// "active": true, // True if the value have to be converted when displayed to the user
// "displayMeasureValue": "366", // The unit display to the user, mandatory if active=true
// "saveMeasureValue": "766" // The unit in database, mandatory if active=true
//},
"hide": false
//"choiceInList": true // When the column is in edit mode, the edition is a list of choices or not
//"listStyle": "select" // select / radio
//"possibleValues": ["choice1", "choice2", "choice3"],
//"format": "number" // "date" / "datetime"
//"defaultValue" : "SSSSSSSSSS"
//"url": "theUrlToGetTheData"
},
{
"header": "Salary",
"property": "Salary",
"order": true,
"type": "text",
"edit": true,
"position": 1
},
{
"header": "EmployeeID",
"property": "EmployeeID",
"order": true,
"type": "text",
"edit": true,
"position": 2
}
],
"colmunsUrl": "theUrl",
"add": {
"active": true,
"showButton": true
},
"save": {
"active": true,
"withoutEdit": true, // If you want to be able to safe without editing lines
"keepEdit": false, // Keep in edit mode after save
"showButton": true, // Show the save button in the toolbar
"changeClass": true, // Change class to success or error on the lines
"mode": 'local', // Save mode
"url": "theUrl", // or function(value){return "url"} Required if mode is remote
"batch": true, // for batch mode one url with all data
"method": 'post', // or function(line){ return 'method'} The HTTP verb
"value": function (value) { return value; }, // used to transform the value send to the server
"callback": function (datatable, errorsNumber) { } // used to have a callback after save all elements.
},
"edit": {
"active": true,
"columnMode": true,
},
"remove": {
"active": true,
"mode": 'local',
"withEdit": true, //Allow to remove a line in edition mode
"showButton": true, //Show the remove button in the toolbar
"url": "theUrl", // or function(value){return "url"},
"callback ": function (datatable, errorsNumber) { } //Callback after remove all element.
},
"pagination": {
"active": true, // Active or not
"mode": 'local', // 'remote' or 'local',//remote will call the server to do the pagination things
"numberPageListMax": 3,
"numberRecordsPerPage": 10, // Number of item in a page
"numberRecordsPerPageList": [{ number: 10, clazz: '' }, { number: 25, clazz: '' }] // The list of the possible option given to the user
},
"compact": true,
"mergeCells": {
"active": true // Active or not
},
"exportCSV": {
active: true, // Active or not
showButton: true, // Show the export button in the toolbar
delimiter: ";" // Set the delimiter
},
"showTotalNumberRecords": true,
"order": {
"mode": 'local', // 'remote' or 'local'
"active": true, // Active or not
"showButton": true, // Show the order button in the toolbar
"by": "Name", // order by Column name
"reverse": false, // reverse the order
"callback": function (datatable, errorsNumber) { }, // used to have a callback after order all element.
},
"show": {
"active": true,
"showButton": true,
"add": function (line) {
//open a new page or add new tab to show detail...
}
},
"hide": {
"active": true,
"showButton": true // Show the hide button in the toolbar
},
"select": {
"active": true,
"showButton": true, // Show the select all button in the toolbar
},
"filter": {
active: true,
highlight: true,
columnMode: false,
showButton: false //Show the filter and reset buttons if true
},
"otherButtons": {
"active": false, // Active or not
"template": "ABC" // Html element
},
"messages": {
"active": false, // Active or not
"errorClass": 'alert alert-danger', // Set the class when their is errors
"successClass": 'alert alert-success', // Set the class when their is success
"errorKey": { save: 'datatable.msg.error.save', remove: 'datatable.msg.error.remove' }, // Set the error key to be i18n
"successKey": { save: 'datatable.msg.success.save', remove: 'datatable.msg.success.remove' }, //Set the success key to be i18n
"text": "Hello", // Current text
"clazz": "", // current class
"transformKey": function (key, args) { } // the function that transform the key
},
"group": {
"active": true, // Active or not, group add group:boolean in each line of type group
"callback": function (datatable) { }, // Call after the group function
"by": "Name",// group by...
"showButton": true, // Show the group button in the toolbar
"after": true, // To position group line before or after lines
"showOnlyGroups": true, // To display only group line in datatable
"enableLineSelection": true // Authorized or not selection on group line
},
"extraHeaders": {
number: 0, // Number of extra headers
list: {}, // If dynamic:false
dynamic: false // If dynamic:true, the headers will be auto generated
}
};
//Simple exemple of data
var datatableData = [
{ "Name": "Surajit Ghosh", "Salary": 58000, "EmployeeID": 1008 },
{ "Name": "Amit Bhunia", "Salary": 25000, "EmployeeID": 1005 },
{ "Name": "Sourav Mondal", "Salary": 69333, "EmployeeID": 1006 },
{ "Name": "Sayan Bose", "Salary": 10222, "EmployeeID": 1007 },
{ "Name": "Nihar Shaw", "Salary": 89250, "EmployeeID": 1001 },
{ "Name": "Sankar Parida", "Salary": 89556, "EmployeeID": 1003 },
{ "Name": "Monaranjan Chatri", "Salary": 89556, "EmployeeID": 1002 },
{ "Name": "Shantanu Nag", "Salary": 89556, "EmployeeID": 1004 },
{ "Name": "Abhijit Bera", "Salary": 89556, "EmployeeID": 1009 },
{ "Name": "Pankaj Das", "Salary": 89556, "EmployeeID": 1010 },
{ "Name": "Minhaj Ali", "Salary": 89556, "EmployeeID": 1015 },
{ "Name": "Arko Pramanik", "Salary": 89556, "EmployeeID": 1014 },
{ "Name": "Rana Mondal", "Salary": 89556, "EmployeeID": 1013 },
{ "Name": "Asis Bera", "Salary": 89556, "EmployeeID": 1012 },
{ "Name": "Tarun Samai", "Salary": 89556, "EmployeeID": 1011 },
{ "Name": "Biswajit Das", "Salary": 65000, "EmployeeID": 1016 }];
//Init the datatable with his configuration
$scope.datatable = datatable(datatableConfig);
//Set the data to the datatable
$scope.datatable.setData(datatableData);
}]);

0 comments