Remote database ids and actions
The following example shows a few important concepts.
- How to load the data with IDS that are not shown to the user;
- How to create custom columns, in this example adding icon with actions;
- Get a new remote id every single row added to the system;
NOTE: the example handles with one new line, but you can interact to get more ids in case more than one rows are added
Source code
<html> <script src="https://jspreadsheet.com/v7/jspreadsheet.js"></script> <script src="https://jsuites.net/v5/jsuites.js"></script> <link rel="stylesheet" href="https://jspreadsheet.com/v7/jspreadsheet.css" type="text/css" /> <link rel="stylesheet" href="https://jsuites.net/v5/jsuites.css" type="text/css" /> <div id="spreadsheet"></div> <script> var action = function() { var methods = {}; methods.createCell = function(cell, value, x, y, instance, options) { var input = document.createElement('i'); input.className = 'material-icons'; input.style.cursor = 'pointer'; input.style.fontSize = '22px'; input.innerHTML = "search"; input.onclick = function() { var id = instance.getRowId(y); // Do some action alert(id); } cell.appendChild(input); } return methods; }(); jspreadsheet(document.getElementById('spreadsheet'), { data: [ { id:'1', data:['Google', '5', ''] }, { id:'2', data:['Bind', '4', ''] }, { id:'3', data:['Yahoo', '1', ''] }, { id:'4', data:['Duckduckgo', '5', ''] }, ], columns: [ { type: 'text', width:'400px' }, { type: 'rating', width:'100px' }, { type: action, width:'100px', readOnly: true }, ], persistance: '/jspreadsheet/save', oninsertrow: function(a,b,c,d,e) { // Inserted before? var rowNumber = e == false ? b + 1 : b; // Go in remotely get the id and return to the cell jSuites.ajax({ url: '/jspreadsheet/id', method: 'GET', dataType: 'json', success: function(result) { // The new id is alert('The new row has id: ' + result); // set row id a.jexcel.setRowId(rowNumber, result); } }) }, license: 'ODIzZjY0ZWIzNmIyMmJmODAxNzZiMTM2YWJlMDc2YjRmMjFhZmIzMWJiMzcxYzRhYzE4MWQ5MDYwNmM4OGYzZDY0ZTQ3YWJiN2E0Mjk0ZWE2YTYyMDBkZDIyMWZjNTM2YTQ4OWE2M2FiMDRhNTg5ZjVhODg2YWI1ZWVmZjJlZGMsZXlKdVlXMWxJam9pU25Od2NtVmhaSE5vWldWMElpd2laR0YwWlNJNk1UWTVOalV3TkRNek15d2laRzl0WVdsdUlqcGJJbXB6Y0hKbFlXUnphR1ZsZEM1amIyMGlMQ0pqYjJSbGMyRnVaR0p2ZUM1cGJ5SXNJbXB6YUdWc2JDNXVaWFFpTENKamMySXVZWEJ3SWl3aWQyVmlJaXdpYkc5allXeG9iM04wSWwwc0luQnNZVzRpT2lJek5DSXNJbk5qYjNCbElqcGJJblkzSWl3aWRqZ2lMQ0oyT1NJc0luWXhNQ0lzSW1Ob1lYSjBjeUlzSW1admNtMXpJaXdpWm05eWJYVnNZU0lzSW5CaGNuTmxjaUlzSW5KbGJtUmxjaUlzSW1OdmJXMWxiblJ6SWl3aWFXMXdiM0owSWl3aVltRnlJaXdpZG1Gc2FXUmhkR2x2Ym5NaUxDSnpaV0Z5WTJnaUxDSndjbWx1ZENJc0luTm9aV1YwY3lKZExDSmtaVzF2SWpwMGNuVmxmUT09', }); </script> </html>