Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
- <!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
- <!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
- <!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <title>Slickgrid paging</title>
- <meta name="description" content="">
- <meta name="viewport" content="width=device-width">
- <!--<link rel="stylesheet" type="text/css" media="screen" href="http://192.168.1.18/mine/assets/default/styles/jqgrid/jquery-ui-1.10.1.custom.min.css" />-->
- <!--<link rel="stylesheet" type="text/css" media="screen" href="http://192.168.1.18/mine/assets/default/styles/bootstrap/bootstrap.min.css" />-->
- <link rel="stylesheet" type="text/css" media="screen" href="http://192.168.1.18/mine/assets/default/styles/slickgrid/slick_grid.css" />
- <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
- <script src="http://192.168.1.18/mine/assets/default/scripts/jqgrid/jquery-1.9.1.min.js" type="text/javascript"></script>
- <script type="text/javascript" src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/jquery.event.drag-2.0.min.js"></script>
- <script type="text/javascript" src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.core.js"></script>
- <script type="text/javascript" src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.grid.js"></script>
- <!-- I THINK THIS IS REQUIREMENT FOR INLINE EDITING-->
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.cellrangedecorator.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.cellrangeselector.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.cellselectionmodel.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.formatters.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.editors.js"></script>
- <!-- BUAT PAGING -->
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.dataview.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.pager.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.cellselectionmodel.js"></script>
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.rowselectionmodel.js"></script>
- <!-- BUAT PAGING -->
- <script src="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.pager.js"></script>
- <link rel="stylesheet" type="text/css" href="http://192.168.1.18/mine/assets/default/scripts/slickgrid/slick.pager.css">
- <link rel="stylesheet" type="text/css" href="http://192.168.1.18/mine/assets/default/styles/slickgrid/slick.example.css">
- <link rel="stylesheet" type="text/css" href="http://192.168.1.18/mine/assets/default/styles/jqgrid/jquery-ui-1.10.1.custom.min.css">
- <!-- DO WE NEED THIS??? -->
- <script src="http://192.168.1.18/mine/assets/default/scripts/jqgrid/jquery-ui-1.10.1.custom.min.js"></script>
- </head>
- <body>
- <!--[if lt IE 7]>
- <p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
- <![endif]-->
- <script type="text/javascript">
- var ajaxFileURL="slickgrid_json/json_db_slickgrid/1400";
- var ajaxUpdateURL="update";
- function populateList(ajaxFileURL){
- //var msgDelete = 'Anda yakin ingin hapus data ini?';
- //var deleteIcon = '<img src="del.png" border="0" />';
- var grid;
- var columns = [
- //id='id', name='nama di field', field='data yang diisikan', option lain
- {id: "id", name: "ID", field: "id", sortable: true, width: 30},
- {id: "username", name: "Username", field: "username", sortable: true, editor: Slick.Editors.Text},
- {id: "age", name: "Age", field: "age", sortable: true, editor: Slick.Editors.Text, width: 30},
- {id: "city", name: "City", field: "city", sortable: true, editor: Slick.Editors.Text},
- {id: "country", name: "Country", field: "country", sortable: true, editor: Slick.Editors.LongText},
- {id: "gender", name: "Gender", field: "gender", sortable: true, editor: Slick.Editors.Text, width:30}
- ];
- var options = {
- editable: true,
- enableAddRow: false,
- asyncEditorLoading: false,
- autoEdit: false,
- forceFitColumns: true,
- enableRowReordering: true,
- enableCellNavigation: true,
- enableColumnReorder: false,
- //yo mamen, jangan lupa kalau mau make fitur multi-sort di beberapa column atau di semua column => multiColumnSort: true
- multiColumnSort: true
- };
- //tambahan dari stackoverflow juga
- $.getJSON(ajaxFileURL,ajaxUpdateURL,function(data){
- //i don't know should i use looping method, but i found this at stackoverflow
- //this extract json data
- for(var i=0; i< data.length; i++)
- {
- data[i]["id"] = data[i].id;
- data[i]["username"] = data[i].username;
- data[i]["age"] = data[i].age;
- data[i]["city"] = data[i].city;
- data[i]["country"] = data[i].country;
- data[i]["gender"]=data[i].gender;
- }
- //function dibawah cuman buat ngasih tau apa request JSON sampai atau tidak
- //alert("JSON DATA = "+data[1].invdate);
- //data contains the response from the ajax call at this point
- dataView = new Slick.Data.DataView();
- grid = new Slick.Grid("#myGrid", dataView, columns, options);
- var pager = new Slick.Controls.Pager(dataView, grid, $("#pager"));
- grid.onCellChange.subscribe(function(e, args){
- //jika kolom tak terdefinisi, means no value...
- //berarti dia mo insert data
- if (typeof(args.item.id)=='undefined')
- $.post(ajaxFileURL+"?action=insert", args.item);
- //jika yang lain???? berarti update
- else{
- $.post(ajaxUpdateURL, args.item, function(ServerResponseUpt){
- // if database return an error then display it to the user and undo the cell change
- if(parseInt(ServerResponseUpt.affected_rows) < 1 || ServerResponseUpt.error_msg != "") {
- alert("UPDATE ERROR: "+ServerResponseUpt.error_msg);
- args.item[ previousCellNames[0] ] = previousCellValues[0];
- grid.updateRow(args.row);
- grid.updateRowCount();
- grid.render();
- }
- previousCellNames = new Array();
- previousCellValues = new Array();
- }, "json");
- // refresh the data on grid
- grid.updateRow(args.row);
- grid.updateRowCount();
- grid.render();
- }
- console.log(args.item.id);
- })
- grid.onAddNewRow.subscribe(function(e, args) {
- var item = args.item;
- var column = args.column;
- grid.invalidateRow(data.length);
- data.push(item);
- grid.updateRowCount();
- grid.invalidate();
- grid.render();
- });
- // wire up model events to drive the grid
- dataView.onRowCountChanged.subscribe(function (e, args) {
- grid.updateRowCount();
- grid.render();
- });
- dataView.onRowsChanged.subscribe(function (e, args) {
- grid.invalidateRows(args.rows);
- grid.render();
- });
- // Feed the data into the dataview
- dataView.setItems(data);
- });
- };
- // outside function to DELETE
- /*
- function removeClick(ajaxFileURL, dbRowId, gridRow) {
- $.post( ajaxFileURL+'?action=delete', {id:dbRowId} );
- var item = dataView1.getItem(gridRow);//RowNum is the number of the row
- var rowID = item.id
- dataView1.deleteItem(rowID);//RowID is the actual ID of the grid row and not the DB row
- grid1.invalidate();
- grid1.render();
- };
- */
- jQuery(document).ready(function($) {
- // Stuff to do as soon as the DOM is ready;
- populateList(ajaxFileURL);
- });
- </script>
- <p></p>
- <div style="position: relative">
- <table width="100%">
- <tr>
- <td valign="top" width="50%">
- <div id="myGrid" style="width:500px; height:500px;"></div>
- <div id="pager" style="width: 500px; height:20px;"></div>
- </td>
- <td valign="top">
- <h2>Demonstrates:</h2>
- <ul>
- <li>basic grid with minimal configuration</li>
- <li>and multi-sorting column (some column)</li>
- <li>Lama eksekusi skrip : 0.0681</li>
- <li>Memori yang digunakan : 3.46MB</li>
- </ul>
- </td>
- </tr>
- </table>
- </div>
- <!--end of SlickGrid-->
- </body>
- </html>
Advertisement
Add Comment
Please, Sign In to add comment