Problem with individual column filtering

Problem with individual column filtering

vincentvincent Posts: 5Questions: 0Answers: 0
edited November 2010 in General
Hi, I try to use individual column filtering (using select menus) ( http://datatables.net/examples/api/multi_filter_select.html ), but my fieldlists are empty. So if I add alert(""); before the following code, all my fieldlists works... but I don't want to click on this dialogue box on each pages.

[code]
/* Add a select menu for each TH element in the table footer */
$("tfoot th").each( function (i)
{
this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i) );
$('select', this).change( function ()
{
oTable.fnFilter( $(this).val(), i );
} );
} );
[/code]

without alert(""); : http://rouard.nicolas.free.fr/imgdatatables/img1.jpg
with alert(""); : http://rouard.nicolas.free.fr/imgdatatables/img2.jpg

Replies

  • vincentvincent Posts: 5Questions: 0Answers: 0
    anyone have an idea ?
  • vincentvincent Posts: 5Questions: 0Answers: 0
    [code]







    (function($) {
    /*
    * Function: fnGetColumnData
    * Purpose: Return an array of table values from a particular column.
    * Returns: array string: 1d data array
    * Inputs: object:oSettings - dataTable settings object. This is always the last argument past to the function
    * int:iColumn - the id of the column to extract the data from
    * bool:bUnique - optional - if set to false duplicated values are not filtered out
    * bool:bFiltered - optional - if set to false all the table data is used (not only the filtered)
    * bool:bIgnoreEmpty - optional - if set to false empty values are not filtered from the result array
    * Author: Benedikt Forchhammer
    */
    $.fn.dataTableExt.oApi.fnGetColumnData = function ( oSettings, iColumn, bUnique, bFiltered, bIgnoreEmpty ) {
    // check that we have a column id
    if ( typeof iColumn == "undefined" ) return new Array();

    // by default we only wany unique data
    if ( typeof bUnique == "undefined" ) bUnique = true;

    // by default we do want to only look at filtered data
    if ( typeof bFiltered == "undefined" ) bFiltered = true;

    // by default we do not wany to include empty values
    if ( typeof bIgnoreEmpty == "undefined" ) bIgnoreEmpty = true;

    // list of rows which we're going to loop through
    var aiRows;

    // use only filtered rows
    if (bFiltered == true) aiRows = oSettings.aiDisplay;
    // use all rows
    else aiRows = oSettings.aiDisplayMaster; // all row numbers

    // set up data array
    var asResultData = new Array();

    for (var i=0,c=aiRows.length; i -1) continue;

    // else push the value onto the result data array
    else asResultData.push(sValue);
    }

    return asResultData;
    }}(jQuery));

    function fnCreateSelect( aData )
    {
    var r='', i, iLen=aData.length;
    for ( i=0 ; i
  • vincentvincent Posts: 5Questions: 0Answers: 0
    I use:
    jQuery v1.4.3
    dataTables Version: 1.7.4
  • slash135slash135 Posts: 3Questions: 0Answers: 0
    hi,
    got the same problem, did have a solution, please share it if so.
    I'm gonna be mad!!
  • vincentvincent Posts: 5Questions: 0Answers: 0
    No I don't found the solution, I use http://www.datatables.net/examples/api/multi_filter.html in waiting...
  • lindilindi Posts: 1Questions: 0Answers: 0
    Hi,

    I have the same problem and could not solve it.

    Anyone any ideas?

    Thank you!
  • ziwarziwar Posts: 1Questions: 0Answers: 0
    edited February 2011
    if anyone is still having a problem with this issue, i found out that if you put the code inside
    ( fnInitComplete function), the lists will be populated properly:
    [code]
    fnInitComplete: function () {
    this.parent().applyTemplateSetup();
    $("thead td").each( function ( i ) {
    this.innerHTML = fnCreateSelect( oTable.fnGetColumnData(i));
    });
    }
    [/code]
This discussion has been closed.