Using a field in the list to filter a lookup

Discussions about Cross-site Lookup
User avatar
dominique.beaudin
Posts: 49
Joined: Tue Mar 06, 2018

09 Jul 2018

Ugh. My test worked, but then when put exactly the same syntax in the "real" lookup, I get the spinning disk... no error. It is probably something silly I missed. I verified the internal names etc...

function (term, page) {
// Getting the selected country
var countryId = fd.field('ContractorID').value();
if (!countryId) {
countryId = 0;
}

// Filtering by the selected country
if (!term || term.length == 0) {
return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},ContractorEquipmentID/Id&$orderby=Created desc&$filter= ContractorEquipmentID eq " + countryId + "&$top=10";
}
return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},ContractorEquipmentID/Id&$orderby={LookupField}&$filter=startswith({LookupField}, '" + term + "') and ContractorEquipmentID eq " + countryId + "&$top=10";

User avatar
Nikita Kurguzov
Posts: 889
Joined: Mon Jul 03, 2017

10 Jul 2018

Dear Dominique,
In case you are working with the lookup, the expand property is necessary, as well as FieldName/Id, so it knows what to retrieve. Try this, even though it's awfully similar to the first piece of code you've posted, it still should be working:

Code: Select all

function (term, page) {
  // Getting the selected contractor
  var contractorId = fd.field('ContractorID').value();
  if (!contractorId ) {
    contractorId = 0;
  }

  // Filtering by the selected contractor
  if (!term || term.length == 0) {
    return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},ContractorEquipmentID/Id&$orderby=Created desc&$expand=ContractorEquipmentID&$filter= ContractorEquipmentID/Id eq " + contractorId + "&$top=10";
  }
  return "{WebUrl}/_api/web/lists('{ListId}')/items?$select=Id,{LookupField},ContractorEquipmentID/Id&$orderby={LookupField}&$expand=ContractorEquipmentID&$filter=startswith({LookupField}, '" + term + "') and ContractorEquipmentID/Id eq " + contractorId + "&$top=10";
}
Cheers

User avatar
dominique.beaudin
Posts: 49
Joined: Tue Mar 06, 2018

10 Jul 2018

I got it all working and it is BEAUTIFUL! I had an INT on one side and a String on the other. Resolving that fixed it. Thank you.

Locked
  • Information
  • Who is online

    Users browsing this forum: No registered users and 13 guests