How to filter a "List or Library" control by "TaxonomyFieldTypeMulti" field

Hello,

I am using the following JavaScript code:

fd.control('MySPDataTable').ready(function() {
    query = '<Or>';
    for (i = 0; i < fd.field('MyTaxonomyField').value.length; i++) {
        query += '<Eq><FieldRef Name="MyTaxonomyField" /><Value Type="TaxonomyFieldTypeMulti">' + fd.field('MyTaxonomyField').value[i].name + '</Value></Eq>';
    }
    query += '</Or>';
    fd.control('MySPDataTable').filter = query;
    fd.control('MySPDataTable').refresh();
});

But I get the following errors:

Please anyone knows how to filter a "Data Table/List or Library" control by a taxonomy field?

Thank you,

Javier

I have found the solution myself.

In case someone needs to do the same, this is how to build the CAML query for "LookupMulti" and "TaxonomyFieldTypeMulti" fields:

<In>
  <FieldRef Name="MyTaxonomyField" />
  <Values>
    <Value Type="Text">Batman</Value>
    <Value Type="Text">Superman</Value>
  </Values>
</In>

And this is the JavaScript code that has worked:

fd.control('MySPDataTable').ready(function() {
    query = '<In>';
    query += '<FieldRef Name="MyTaxonomyField" />';
    query += '<Values>';
    for (i = 0; i < fd.field('MyTaxonomyField').value.length; i++) {
        query += '<Value Type="Text">' + fd.field('MyTaxonomyField').value[i].name + '</Value>';
    }
    query += '</Values>';
    query += '</In>';
    fd.control('MySPDataTable').filter = query;
    fd.control('MySPDataTable').refresh();
});

Javier

1 Like