Skip to content

Instantly share code, notes, and snippets.

@amcdnl
Last active August 9, 2016 19:06
Show Gist options
  • Select an option

  • Save amcdnl/3f6d4f5b83241d5ee9bea3b743b28f4d to your computer and use it in GitHub Desktop.

Select an option

Save amcdnl/3f6d4f5b83241d5ee9bea3b743b28f4d to your computer and use it in GitHub Desktop.
angular2-data-table paging

angular2-data-table paging example

[
{
"name": "Ethel Price",
"gender": "female",
"company": "My company name is very long and funny because funny is fun"
},
{
"name": "Claudine Neal",
"gender": "female",
"company": "Sealoud"
},
{
"name": "Beryl Rice",
"gender": "female",
"company": "Velity"
},
{
"name": "Wilder Gonzales",
"gender": "male",
"company": "Geekko"
},
{
"name": "Georgina Schultz",
"gender": "female",
"company": "Suretech"
},
{
"name": "Carroll Buchanan",
"gender": "male",
"company": "Ecosys"
},
{
"name": "Valarie Atkinson",
"gender": "female",
"company": "Hopeli"
},
{
"name": "Schroeder Mathews",
"gender": "male",
"company": "Polarium"
},
{
"name": "Lynda Mendoza",
"gender": "female",
"company": "Dogspa"
},
{
"name": "Sarah Massey",
"gender": "female",
"company": "Bisba"
},
{
"name": "Robles Boyle",
"gender": "male",
"company": "Comtract"
},
{
"name": "Evans Hickman",
"gender": "male",
"company": "Parleynet"
},
{
"name": "Dawson Barber",
"gender": "male",
"company": "Dymi"
},
{
"name": "Bruce Strong",
"gender": "male",
"company": "Xyqag"
},
{
"name": "Nellie Whitfield",
"gender": "female",
"company": "Exospace"
},
{
"name": "Jackson Macias",
"gender": "male",
"company": "Aquamate"
},
{
"name": "Pena Pena",
"gender": "male",
"company": "Quarx"
},
{
"name": "Lelia Gates",
"gender": "female",
"company": "Proxsoft"
},
{
"name": "Letitia Vasquez",
"gender": "female",
"company": "Slumberia"
},
{
"name": "Trevino Moreno",
"gender": "male",
"company": "Conjurica"
},
{
"name": "Barr Page",
"gender": "male",
"company": "Apex"
},
{
"name": "Kirkland Merrill",
"gender": "male",
"company": "Utara"
},
{
"name": "Blanche Conley",
"gender": "female",
"company": "Imkan"
},
{
"name": "Atkins Dunlap",
"gender": "male",
"company": "Comveyor"
},
{
"name": "Everett Foreman",
"gender": "male",
"company": "Maineland"
},
{
"name": "Gould Randolph",
"gender": "male",
"company": "Intergeek"
},
{
"name": "Kelli Leon",
"gender": "female",
"company": "Verbus"
},
{
"name": "Freda Mason",
"gender": "female",
"company": "Accidency"
},
{
"name": "Tucker Maxwell",
"gender": "male",
"company": "Lumbrex"
},
{
"name": "Yvonne Parsons",
"gender": "female",
"company": "Zolar"
},
{
"name": "Woods Key",
"gender": "male",
"company": "Bedder"
},
{
"name": "Stephens Reilly",
"gender": "male",
"company": "Acusage"
},
{
"name": "Mcfarland Sparks",
"gender": "male",
"company": "Comvey"
},
{
"name": "Jocelyn Sawyer",
"gender": "female",
"company": "Fortean"
},
{
"name": "Renee Barr",
"gender": "female",
"company": "Kiggle"
},
{
"name": "Gaines Beck",
"gender": "male",
"company": "Sequitur"
},
{
"name": "Luisa Farrell",
"gender": "female",
"company": "Cinesanct"
},
{
"name": "Robyn Strickland",
"gender": "female",
"company": "Obones"
},
{
"name": "Roseann Jarvis",
"gender": "female",
"company": "Aquazure"
},
{
"name": "Johnston Park",
"gender": "male",
"company": "Netur"
},
{
"name": "Wong Craft",
"gender": "male",
"company": "Opticall"
},
{
"name": "Merritt Cole",
"gender": "male",
"company": "Techtrix"
},
{
"name": "Dale Byrd",
"gender": "female",
"company": "Kneedles"
},
{
"name": "Sara Delgado",
"gender": "female",
"company": "Netagy"
},
{
"name": "Alisha Myers",
"gender": "female",
"company": "Intradisk"
},
{
"name": "Felecia Smith",
"gender": "female",
"company": "Futurity"
},
{
"name": "Neal Harvey",
"gender": "male",
"company": "Pyramax"
},
{
"name": "Nola Miles",
"gender": "female",
"company": "Sonique"
},
{
"name": "Herring Pierce",
"gender": "male",
"company": "Geeketron"
},
{
"name": "Shelley Rodriquez",
"gender": "female",
"company": "Bostonic"
},
{
"name": "Cora Chase",
"gender": "female",
"company": "Isonus"
},
{
"name": "Mckay Santos",
"gender": "male",
"company": "Amtas"
},
{
"name": "Hilda Crane",
"gender": "female",
"company": "Jumpstack"
},
{
"name": "Jeanne Lindsay",
"gender": "female",
"company": "Genesynk"
},
{
"name": "Frye Sharpe",
"gender": "male",
"company": "Eplode"
},
{
"name": "Velma Fry",
"gender": "female",
"company": "Ronelon"
},
{
"name": "Reyna Espinoza",
"gender": "female",
"company": "Prismatic"
},
{
"name": "Spencer Sloan",
"gender": "male",
"company": "Comverges"
},
{
"name": "Graham Marsh",
"gender": "male",
"company": "Medifax"
},
{
"name": "Hale Boone",
"gender": "male",
"company": "Digial"
},
{
"name": "Wiley Hubbard",
"gender": "male",
"company": "Zensus"
},
{
"name": "Blackburn Drake",
"gender": "male",
"company": "Frenex"
},
{
"name": "Franco Hunter",
"gender": "male",
"company": "Rockabye"
},
{
"name": "Barnett Case",
"gender": "male",
"company": "Norali"
},
{
"name": "Alexander Foley",
"gender": "male",
"company": "Geekosis"
},
{
"name": "Lynette Stein",
"gender": "female",
"company": "Macronaut"
},
{
"name": "Anthony Joyner",
"gender": "male",
"company": "Senmei"
},
{
"name": "Garrett Brennan",
"gender": "male",
"company": "Bluegrain"
},
{
"name": "Betsy Horton",
"gender": "female",
"company": "Zilla"
},
{
"name": "Patton Small",
"gender": "male",
"company": "Genmex"
},
{
"name": "Lakisha Huber",
"gender": "female",
"company": "Insource"
},
{
"name": "Lindsay Avery",
"gender": "female",
"company": "Unq"
},
{
"name": "Ayers Hood",
"gender": "male",
"company": "Accuprint"
},
{
"name": "Torres Durham",
"gender": "male",
"company": "Uplinx"
},
{
"name": "Vincent Hernandez",
"gender": "male",
"company": "Talendula"
},
{
"name": "Baird Ryan",
"gender": "male",
"company": "Aquasseur"
},
{
"name": "Georgia Mercer",
"gender": "female",
"company": "Skyplex"
},
{
"name": "Francesca Elliott",
"gender": "female",
"company": "Nspire"
},
{
"name": "Lyons Peters",
"gender": "male",
"company": "Quinex"
},
{
"name": "Kristi Brewer",
"gender": "female",
"company": "Oronoko"
},
{
"name": "Tonya Bray",
"gender": "female",
"company": "Insuron"
},
{
"name": "Valenzuela Huff",
"gender": "male",
"company": "Applideck"
},
{
"name": "Tiffany Anderson",
"gender": "female",
"company": "Zanymax"
},
{
"name": "Jerri King",
"gender": "female",
"company": "Eventex"
},
{
"name": "Rocha Meadows",
"gender": "male",
"company": "Goko"
},
{
"name": "Marcy Green",
"gender": "female",
"company": "Pharmex"
},
{
"name": "Kirk Cross",
"gender": "male",
"company": "Portico"
},
{
"name": "Hattie Mullen",
"gender": "female",
"company": "Zilencio"
},
{
"name": "Deann Bridges",
"gender": "female",
"company": "Equitox"
},
{
"name": "Chaney Roach",
"gender": "male",
"company": "Qualitern"
},
{
"name": "Consuelo Dickson",
"gender": "female",
"company": "Poshome"
},
{
"name": "Billie Rowe",
"gender": "female",
"company": "Cemention"
},
{
"name": "Bean Donovan",
"gender": "male",
"company": "Mantro"
},
{
"name": "Lancaster Patel",
"gender": "male",
"company": "Krog"
},
{
"name": "Rosa Dyer",
"gender": "female",
"company": "Netility"
},
{
"name": "Christine Compton",
"gender": "female",
"company": "Bleeko"
},
{
"name": "Milagros Finch",
"gender": "female",
"company": "Handshake"
},
{
"name": "Ericka Alvarado",
"gender": "female",
"company": "Lyrichord"
},
{
"name": "Sylvia Sosa",
"gender": "female",
"company": "Circum"
},
{
"name": "Humphrey Curtis",
"gender": "male",
"company": "Corepan"
}
]
System.config({
//use typescript for compilation
transpiler: 'typescript',
//typescript compiler options
typescriptOptions: {
emitDecoratorMetadata: true
},
//map tells the System loader where to look for things
map: {
app: "./src",
'@angular': 'https://npmcdn.com/@angular',
'rxjs': 'https://npmcdn.com/[email protected]',
'angular2-data-table': 'https://npmcdn.com/angular2-data-table'
},
//packages defines our app package
packages: {
app: {
main: './app.ts',
defaultExtension: 'ts'
},
'@angular/core': {
main: 'bundles/core.umd.js',
defaultExtension: 'js'
},
'@angular/compiler': {
main: 'bundles/compiler.umd.js',
defaultExtension: 'js'
},
'@angular/http': {
main: 'bundles/http.umd.js',
defaultExtension: 'js'
},
'@angular/common': {
main: 'bundles/common.umd.js',
defaultExtension: 'js'
},
'@angular/platform-browser-dynamic': {
main: 'bundles/platform-browser-dynamic.umd.js',
defaultExtension: 'js'
},
'@angular/platform-browser': {
main: 'bundles/platform-browser.umd.js',
defaultExtension: 'js'
},
rxjs: {
defaultExtension: 'js'
}
}
});
<!DOCTYPE html>
<html>
<head>
<title>angular2-data-table</title>
<link rel="stylesheet" type="text/css" href="style.css" />
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/swimlane/angular2-data-table/master/release/datatable.css" />
<link rel="stylesheet" type="text/css" href="https://cdn.rawgit.com/swimlane/angular2-data-table/master/release/material.css" />
<link href="https://file.myfontastic.com/Jnf54BZCm7mSjGCxNRbfp3/icons.css" rel="stylesheet">
<script src="https://npmcdn.com/[email protected]/dist/zone.js"></script>
<script src="https://npmcdn.com/[email protected]/Reflect.js"></script>
<script src="https://npmcdn.com/[email protected]/dist/system.js"></script>
<script src="https://npmcdn.com/[email protected]/lib/typescript.js"></script>
<script src="config.js"></script>
<script>
System.import('./src/bootstrap')
.catch(console.error.bind(console));
</script>
</head>
<body>
<app>
loading...
</app>
</body>
</html>
import { Component } from '@angular/core';
import {
DataTable,
TableOptions,
TableColumn,
ColumnMode
} from 'angular2-data-table';
@Component({
selector: 'app',
template: `
<div>
<h3>client-paging</h3>
<datatable
class="material"
[rows]="rows"
[options]="options">
</datatable>
</div>
`,
directives: [ DataTable ]
})
export class App {
rows = [];
options = new TableOptions({
columnMode: ColumnMode.force,
headerHeight: 50,
footerHeight: 50,
rowHeight: 'auto',
limit: 10,
columns: [
new TableColumn({ name: "Name" }),
new TableColumn({ name: "Gender" }),
new TableColumn({ name: "Company" })
]
});
constructor() {
this.fetch((data) => {
this.rows.push(...data);
});
}
fetch(cb) {
var req = new XMLHttpRequest();
req.open('GET', `company.json`);
req.onload = () => {
cb(JSON.parse(req.response));
};
req.send();
}
}
import {bootstrap} from '@angular/platform-browser-dynamic';
import { App } from './app.ts';
bootstrap(App, [])
.catch(err => console.error(err));
/* Styles go here */
body{
font-family: 'RobotoDraft', 'Roboto', 'Helvetica Neue, Helvetica, Arial', sans-serif;
text-align: center;
font-style: normal;
font-weight: 300;
font-size: 1.4rem;
line-height: 2rem;
letter-spacing: 0.01rem;
color: #212121;
background-color: #f5f5f5;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
margin:20px
}
.datatable {
text-align: left;
width:75%;
margin:0 auto;
}
.datatable.vertical-scroll {
height:70vh;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment