get column data
get column data
anilj
Posts: 6Questions: 0Answers: 0
How do I get the column header value into the title variable?
[code]
var field = e.target.name; /* form input field name */
searchTable.columns().each(function (items) {
items.map( function(item) {
var title = searchTable.columns(item).header().to$();
});
});
[/code]
That seems to show me what the HTML th header names are for the columns not what the backend header name I define and return in JSON. Ultimately, what I am trying to do is search a table using something like this but need to determine the index to provide it (e.g. 2) so thought I would loop through all the columns:
[code]
searchTable.columns( 2 ).search( this.value ).draw();
[/code]
Thanks
[code]
var field = e.target.name; /* form input field name */
searchTable.columns().each(function (items) {
items.map( function(item) {
var title = searchTable.columns(item).header().to$();
});
});
[/code]
That seems to show me what the HTML th header names are for the columns not what the backend header name I define and return in JSON. Ultimately, what I am trying to do is search a table using something like this but need to determine the index to provide it (e.g. 2) so thought I would loop through all the columns:
[code]
searchTable.columns( 2 ).search( this.value ).draw();
[/code]
Thanks
This discussion has been closed.
Replies
Btw - in 1.10.0-beta.2 which I'm going to publish very shortly (and this is in the dev version already) I've added an `eq()` method so you don't need to use that inner map. For example:
[code]
var field = e.target.name; /* form input field name */
searchTable.columns().eq(0).each(function ( colIdx ) {
var title = searchTable.columns( colIdx ).header().to$().text();
// ...
});
[/code]
Allan
function getTableColumnIdx (table) {
table.columns().eq(0).each(function (colIdx) {
var title = table.columns( colIdx ).header().to$().text();
logHandler("Column idx: " + colIdx + " name: " + title);
if (title == "From" || title == "To") {
return table.column( colIdx ).index( 'visible' );
}
});
}
[/code]
Why doesn't this function return when the match is found? I must be missing something obvious. I end up getting an output like this:
[quote]
[Log] Column idx: 0 name: id (app.js, line 4)
[Log] Column idx: 1 name: Price (app.js, line 4)
[Log] Column idx: 2 name: From (app.js, line 4)
[Log] Column idx: 3 name: To (app.js, line 4)
[Log] Column idx: 4 name: Description (app.js, line 4)
[Log] Column idx: 5 name: Date Posted (app.js, line 4)
[/quote]
I don't suppose there is a helper function in DT where I can give it a column name and it gives me the index of its position in the table?
> I don't suppose there is a helper function in DT where I can give it a column name and it gives me the index of its position in the table?
Sure :-):
[code]
table.column( ':contains("My Column Title")' ).index();
[/code]
The column selector can be a jQuery selector which is performed on the cells in the header: http://next.datatables.net/reference/type/column-selector
Allan