2011-03-21 16 views
14

का उपयोग कर शेयरपॉइंट में पसंद फ़ील्ड क्वेरी करना मुझे शेयरपॉइंट 2010 में एक विकल्प कॉलम के साथ एक सूची मिली है। विकल्प चेकबॉक्स हैं।बाकी

मैं अतिरिक्त एपीआई का उपयोग करके पसंद कॉलम से कैसे पूछूं?

मैं

http://sp2010/_vti_bin/listdata.svc/mylist?$filter=myChoicesColumn/xxx eq something 

का उपयोग कर की कोशिश की है और उसके बाद मैं

No property 'xxx' exists in type 'System.Collections.Generic.IEnumerable`1[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]' at position 6.

मैं क्या संपत्ति का उपयोग करना चाहिए मिल सकता है?

+1

तो अंतिम उत्तर क्या है? मैं एक ही मुद्दे से फंस गया हूँ! – Shreyas

+0

जब मुझे इस पर जवाब मिल गया तो मैंने उस परियोजना को समाप्त कर दिया था जिस पर मैं था। क्षमा करें मैं नहीं कह सकता कि सही समाधान क्या है। – Ivar

+0

'myChoicesColumn/Value' काम करता है – WhiteHat

उत्तर

0

बस एक शॉट:

क्या आप कोशिश

http://sp2010/_vti_bin/listdata.svc/mylist?$filter=myChoicesColumn contains something 
2

आप फिल्टर में मूल्य के आसपास एकल उद्धरण की जरूरत है।

$filter=myChoicesColumn eq 'something' 
1

सुनिश्चित नहीं है कि आपने इसे पहले ही हल कर लिया है। हालांकि:

मान लें कि आपके पास एक देश में लुकअप फ़ील्ड के साथ एक उत्पाद सूची है। और तुम पर फ्रांस से उत्पाद परिणाम फ़िल्टर करना चाहते हैं और आप देश आईडी के आधार पर फिल्टर करने के लिए नहीं करना चाहते हैं, तो आप $ पर फ़िल्टर कर सकते हैं इस तरह संपत्ति का विस्तार:

http://sharepoint/_vti_bin/ListData.svc/Product?$expand=Country&$filter=Country/Title eq 'France' 

मैं REST कॉल का विस्तार किया है देश की सूची के साथ और उसके बाद करने के लिए 'फ्रांस'

6

इन उत्तरों से कोई भी करने के लिए देश/शीर्षक फ़िल्टर सेट (यानी क्षेत्रों चेक बॉक्स के रूप में प्रतिनिधित्व) सपा क्षेत्रों है कि प्रकार एकाधिक चयन करें के हैं के लिए काम करेंगे।

आप इस तरह "ग्रुपिंग" नामक एक एकाधिक चयन करें विकल्प मैदान पर निम्न फ़िल्टर का प्रयास करें:

{ 
    "error": { 
     "code": "", 
     "message": { 
      "lang": "en-US", 
      "value": "No property 'Value' exists in type 'System.Collections.Generic.IEnumerable`1[[Microsoft.SharePoint.Linq.DataServiceEntity, Microsoft.SharePoint.Linq, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c]]' at position 9." 
     } 
    } 
} 
} 

शायद Value की आवश्यकता नहीं है:

$filter=Grouping/Value eq 'My Value'

आपको त्रुटि मिल जाएगा ? आपको अभी भी एक त्रुटि मिलती है। एसपी 2013 में एमएसडीएन दस्तावेज में कहा गया है कि बहुआयामी विकल्प पूछना संभव नहीं है। इसलिए मैं केवल यह मान सकता हूं कि 2010 आरईएसटी एपीआई के लिए यह भी सच है, जिसे शायद ही कभी दस्तावेज किया गया है।

Queries for multi-value lookup fields and users Because multi-value lookup fields are returned as a string of multiple values, there is no way to query for them (for example, the equivalent of an Includes element or NotIncludes element is not supported).

http://msdn.microsoft.com/en-us/library/fp142385(v=office.15).aspx

+5

अच्छी तरह से माइक्रोसॉफ्ट किया। एक नई एपीआई लागू करें जो इसके पूर्ववर्ती है और कमियों को दस्तावेज परेशान न करें। – Fergal

1

मैं सिर्फ यह निम्नलिखित के साथ मेरी आवश्यकताओं के लिए काम मिल गया।

http://sp2010/_vti_bin/listdata.svc/mylist?$filter=myChoicesColumn/Value%20eq'something' 
2

मैंने ओ 365 पर सफलतापूर्वक यह कोशिश की लेकिन उसी चीज को ऑनप्रम में भी काम करना चाहिए।

~SITE_URL/_api/web/lists/getbytitle('LISTNAME')/items?$filter=(FieldInternalName eq 'CHOICE1') or (FieldInternalName eq 'CHOICE2') 

अपनी आवश्यकताओं के अनुसार "या" के बजाय "और" का उपयोग करें।

+0

मैं इस दृष्टिकोण की पुष्टि ऑन-प्रिमाइसेस 2013 के साथ भी कर सकता हूं। नया आरईएसटी एपीआई 2010-युग ओडाटा ListData.svc से अलग व्यवहार करता है। – Goyuix

0

किसी को अब भी SharePoint में इस के साथ संघर्ष कर 2010 (जो /_vti_bin/listdata.svc endpoint और नहीं SharePoint 2013 का उपयोग करता है और इसके बाद के संस्करण /_api/web है), मैं सफलतापूर्वक एक एकल -selection पसंद $filter में ChoiceFieldNameValue का उपयोग कर मैदान पर फिल्टर करने के लिए कर रहा था ChoiceFieldName/Value के बजाय पैरामीटर।

फ़ील्ड नाम और Value शब्द के बीच आगे की स्लैश की कमी पर ध्यान दें। विचित्र रूप से, $select पैरामीटर के लिए अभी भी /Value की अपेक्षा की आवश्यकता है।

मेरे सफल समाप्ति बिंदु URL ऐसा देखा:

_vti_bin/listdata.svc/ListName?$filter=(ChoiceFieldNameValue eq 'targettext')&$select=ChoiceFieldName/Value&$expand=ChoiceFieldName 

एक संख्यात्मक प्रत्यय के साथ हटा दिया रिक्त स्थान के साथ अपनी सूची और ChoiceFieldName अपने क्षेत्र का प्रदर्शन नाम के साथ के नाम के साथ ListName बदलें, प्रत्येक मामले में और संभवतः टकराव नामकरण से बचें, और उस मूल्य के साथ 'targettext' को प्रतिस्थापित करें जिसके विरुद्ध आप फ़िल्टर करना चाहते हैं।

संबंधित मुद्दे