datanotion / jquery-datatables-column-filter

Automatically exported from code.google.com/p/jquery-datatables-column-filter
0 stars 0 forks source link

Auto-built "select" inputs do not work with Ajax sourced data #34

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
If you load a table which is using Ajax sourced data (just sAjaxSource, not 
server-side processing - although that would suffer from a similar issue - but 
different solution...) and have a "select" input which doesn't have the options 
predefined, the auto detection of the column information fails, since there is 
no data in the table when it loads initially.

The way to overcome this is by attaching a draw callback function to the table, 
and looking for the second draw (i.e. iDraw==2), which occurs when the data has 
been loaded. At that point, the column filter select can be built based on the 
information available.

Attached is a patch for getting this to work as described above.

Original issue reported on code.google.com by allan.ja...@gmail.com on 5 Oct 2011 at 8:29

Attachments:

GoogleCodeExporter commented 9 years ago
Hi,

You are right. I have added your patch in the version 1.3.1 with example on the 
http://jquery-datatables-column-filter.googlecode.com/svn/trunk/ajaxSource.html.
 I have made few minor adjustments to your code:
1. In the condition I have added !oSettings.oFeatures.bServerSide condition:
if(aData == null && oSettings.sAjaxSource != "" && 
!oSettings.oFeatures.bServerSide) {
because it should be applied only if the sAjaxSource is set and it is not in 
the server side filtering mode.

Also, I have added the same condition in the fnDrawCallback because in the 
regular mode on the second draw filter was rebuilt again.

On the server-side processing example I have added a note that auto-build does 
not work.

Thanks for your patch,
Jovan

Original comment by joc...@gmail.com on 6 Oct 2011 at 10:31

GoogleCodeExporter commented 9 years ago
Thanks for including it (and adding more to it :-) )!

Allan

Original comment by allan.ja...@gmail.com on 10 Oct 2011 at 8:35

GoogleCodeExporter commented 9 years ago
Something similar needs to be done for the "checkbox" type option as well.  
Currently, it does not work.  In my case, I don't have "sAjaxSource" option, 
but just set "aaData":[] initially, and then populate the table later. 

Original comment by KAkkape...@gmail.com on 12 Sep 2012 at 10:16

GoogleCodeExporter commented 9 years ago
I should also point out that the "select" option also does not work when the 
table isn't using "sAjaxSource" or server-side.  As mentioned above, I have a 
javascript array of data.

Original comment by KAkkape...@gmail.com on 12 Sep 2012 at 10:50