Possible Bug in Editor-1.4.0-beta
Possible Bug in Editor-1.4.0-beta
GeorgeIoak
Posts: 27Questions: 6Answers: 0
in Bug reports
I've been trying the duplicate example and using several different methods to retrieve data from the selected row. I've placed alerts to check the code and everything appears to be OK but I try before.set( values)
is always returning row 0 data when the form opens.
The code I've tried is:
oTableTools: {
sRowSelect: "os",
// "sSwfPath": "http://localhost/DataTables-1.10.4/extensions/TableTools/swf/copy_csv_xls_pdf.swf",
sRowSelector: "td:first-child",
aButtons: [
{ sExtends: "editor_create", "editor": editor },
{ sExtends: "editor_edit", "editor": editor },
{ sExtends: "editor_remove", "editor": editor },
{
sExtends: "select_single",
sButtonClass: "marginLeft",
sButtonText: "Register",
fnClick: function( nButton, oConfig ) {
// registerPerson
// .title( "Register for 2015" )
// .buttons( { label: "Save", fn: function() { this.submit(); } } )
// .edit( myTable.row( '.selected' ).node() );
// var oTT = $.fn.dataTable.TableTools.fnGetInstance( 'allrecords' );
// var sData = oTT.fnGetSelectedData();
var sData = this.fnGetSelectedData();
var sIndex = this.fnGetSelectedIndexes();
var sRow = sIndex[0];
// alert('selected row: ' + sRow);
var values = editor.edit( sData[sRow], false ).val();
// alert('selected row 0: ' + sData[0].Fname+' '+sData[0].Lname+' '+sData[0].email);
// alert('selected row sRow: ' + sData[sRow].Fname+' '+sData[sRow].Lname+' '+sData[sRow].email);
editor
.create( {
title: 'Register '+sData[0].Fname+' '+sData[0].Lname,
buttons: "Add Person",
focus: 1
} )
.set( values )
// var thisYear = editor.field( 'conf_year' );
// thisYear
.field ( 'conf_year' ).val ( '2015' );
editor.field( 'conf_year' ).disable();
}
},
// { sExtends: "xls"},
{
sExtends: "collection",
sButtonText: "Save",
sButtonClass: "save-collection",
aButtons: [ 'copy', 'csv', 'xls', 'pdf' ]
},
'print'
]
}
This question has an accepted answers - jump to answer
This discussion has been closed.
Answers
It looks like you are passing in a data object to
edit()
- but that can't be used to identify a row by DataTables, which is probably what is causing the issue here.I would suggest simply doing
editor.edit( sRow, false )
. ThesRow
variable is a row index (so if you are using Hungarian notation it should really beiRow
...) whichrow()
can use to identify a row.Allan
This code originated from your Duplicate example, https://datatables.net/blog/2014-07-25. I'm doing basically the same thing as that but I couldn't get it to set the values of the selected row.
In my example I pass in the table node (from
fnGetSelected()
) but above you are using a data object fromfnGetSelectedData()
.There is a running example of the duplicate button which might be of some use available here.
Allan
That was it. I guess I made the mistake of experimenting too much!
Just for reference for someone else here's what I did. sItems isn't really needed since you can grab the data out of sData but I failed initially to figure it out so I reverted to what I knew worked and later I'll debug it further.
The next step is to customize the layout of the form so fields can be placed on 1 lines rather than 1 field per line.