2016-04-19 15 views
3

ich ein OData Web-Services entwickelt, die meine Entity Framework-Modell macht, jetzt muss ich so einen Query Builder entwickeln,HTML OData Query Builder

http://odata.intel.com/QueryBuilder

enter image description here

Gibt es HTML oder JS-Plugin, das ich verwenden könnte, ich bin offen für JQuery oder Angularjs, Bootstrap oder ein anderes Plugin verfügbar, anstatt Rad neu zu erstellen.

+0

Fragen fragen uns, eine empfehlen oder zu finden Bücher, Tools, Softwarebibliotheken, Tutorials oder andere Offsite-Ressourcen sind für Stack Overflow off-topic, da sie dazu neigen, eigensinnige Antworten und Spam zu bekommen. Stattdessen [beschreiben Sie das Problem] (http://meta.stackoverflow.com/questions/254393/what-exactly-is-a-recommendation-question) und was bisher getan wurde, um es zu lösen. – FelixSFD

+0

Wie @ Tiberiu unten hingewiesen, möchten Sie dies verwenden: https://odatasamples.codeplex.com/releases/view/115752 –

Antwort

1
  1. https://odataquerybuilder.codeplex.com/

var url = 'https://services.odata.org/V4/Northwind/Northwind.svc'; 
 
var builder = new Xrm.oData.QueryBuilder(url) 
 
\t \t \t .setEntity('Orders') 
 
\t \t \t .setColumns('OrderID,CustomerID,ShipCountry') 
 
\t \t \t .setExpand('Order_Details') 
 
\t \t \t .setFilters(new Xrm.oData.FilterInfo({ 
 
\t \t \t \t filterType: Xrm.oData.FilterTypes.And, 
 
\t \t \t \t filterExpressions: [ 
 
\t \t \t \t \t "ShipCountry eq 'Sweden'", 
 
\t \t \t \t \t 'OrderID lt 10800' 
 
\t \t \t \t ], 
 
\t \t \t \t filters: [ 
 
\t \t \t \t \t new Xrm.oData.FilterInfo({ 
 
\t \t \t \t \t \t filterType: Xrm.oData.FilterTypes.Or, 
 
\t \t \t \t \t \t filterExpressions: [ 
 
\t \t \t \t \t \t \t "CustomerID eq 'BERGS'", 
 
\t \t \t \t \t \t \t 'OrderID gt 10700' 
 
\t \t \t \t \t \t ], 
 
\t \t \t \t \t \t filters: [], 
 
\t \t \t \t \t }), 
 
\t \t \t \t ] 
 
\t \t \t })) 
 
\t \t \t .setOrders([ 
 
\t \t \t \t new Xrm.oData.OrderColumn({ 
 
\t \t \t \t \t column: 'CustomerID', 
 
\t \t \t \t \t order: Xrm.oData.OrderTypes.Asc 
 
\t \t \t \t }), 
 
\t \t \t \t new Xrm.oData.OrderColumn({ 
 
\t \t \t \t \t column: 'OrderID', 
 
\t \t \t \t \t order: Xrm.oData.OrderTypes.Desc 
 
\t \t \t \t }) 
 
\t \t \t ]) 
 
\t \t \t .setSkip(10) 
 
\t \t \t .setTop(5); 
 

 
var queryString = builder.getQueryFiltersPart(); 
 
console.log(queryString);
<script src="http://yourjavascript.com/58162111474/odata-querybuilder-0-1-min.js"></script>

Ergebnis: $ select = OrderID, CustomerID, ShipCountry & $ expand = Order_Details & $ filter = (ShipCountry eq 'Schweden') und (OrderID lt 10800) und ((CustomerID eq 'BERGS') oder (OrderID gt 10700)) & $ orderby = Kundennummer, OrderID desc & $ überspringen = 10 & $ top = 5

  1. https: // odatasamples.codeplex .com/releases/view/115752

Dieses basiert html ui erzeugt auf Service-Metadaten. Sie können es nach Ihren Bedürfnissen anpassen, indem Sie es ändern. Nach dem Download und vor laufen, ändern "datajs-1.1.1.js", line 2593:

  • von

    xhr.open(request.method || "GET", url, true, request.user, request.password; 
    
  • zu

    xhr.open (request.method | | "GET", "https: // cors-anywhere.herokuapp .com /" + URL, true, request.user, request.password);

** Bug-Fix (http: // Stackoverflow .com/Fragen/30318371/Nordwind-OData-Service-not-Arbeits)

enter image description here

+0

Danke, bitte erklären Sie, wie dies funktioniert, wie ich denke, es ist nur für CRM? – Mathematics