2014-02-05 1 views
0

LightSwitch таблицы в игре:запросов с JavaScript в LightSwitch HTML клиента

  • ProductVariant
  • ProductVariantDetail (многие к одному ProductVariant)

Код:

myapp.AddEditProduct.Id_render = function (element, contentItem) { 
    var detailArray = new Array(); 

    //contentItem.screen.getProductVariantDetails().then(function(result) { 
    // for (var i in result.data) { 
    //  if (result.data[i].ProductVariant.Id == contentItem.value) { 
    //   detailArray.push(result.data[i].InventoryDetail.Title); 
    //  } 
    // } 
    // $("<div>" + detailArray.join("/") + "</div>").appendTo($(element)); 
    //}); 

    var filter = "ProductVariant eq " + contentItem.value; 
    myapp.activeDataWorkspace.ApplicationData.ProductVariantDetails.filter(filter). 
     execute().then(function (result) { 
      for (var i in result.results) { 
       detailArray.push(result.results[i].InventoryDetail.Title); 
      } 

     }).then(function() { 
      $("<div>" + detailArray.join("/") + "</div>").appendTo($(element)); 
    }); 
}; 

Закомментированный из код проходит через EVERY ProductVariantDetail и проверяет соответствие соответствующего ProductVariant пользовательский контроль. Я обнаружил, что вы можете получить запрос на стороне клиента (чтобы сохранить пропускную способность сервера, см. Код без комментирования), но моя версия никогда не делает его внутри фильтра (фильтра) .execute. Я попробовал «ProductVariant.Id eq» для фильтра. Кто-нибудь знает, что я могу делать неправильно?

ответ

0

Попробуйте использовать это var filter = "(ProductVariant.Id eq" + msls._toODataString (contentItem.value, ": Int32") + ")";