2012-11-17 13 views
7

मैं शेयरपॉइंट 2010 से किसी सूची से आइटम प्राप्त करने के लिए दृश्य स्टूडियो सी # में ऊंट क्वेरी का उपयोग कर रहा हूं। सूची आइटम में दो फ़ील्ड हैं जिन्हें मैं कैमल क्वेरी में उपयोग करना चाहता हूं। एक "खंड" है और दूसरा "ऑर्डर बाय" है। क्वेरी को वस्तुओं को एक निश्चित तरीके से ऑर्डर करने की आवश्यकता है। सबसे पहले इसे धारा (आरोही = सत्य) द्वारा क्रमबद्ध करने की आवश्यकता होती है, और फिर ऑर्डर द्वारा (आरोही = सत्य) द्वारा प्रत्येक माध्यमिक सॉर्टिंग के लिए।सीएएमएल क्वेरी में डबल ऑर्डरबी कैसे करें?

उदाहरण के लिए परिणाम इस तरह होगा:

<item> <Section> <Order By> 
item1 A 1 
item2 A 3 
item3 B 1 
item4 B 2 
item5 C 5 
item6 C 6 

अब तक मैं इस है:

 SPQuery query = new SPQuery(); 
     query.Query = "<Query><OrderBy><FieldRef Name='" + Root_List.Fields.GetField(SECTION_COLUMN).InternalName + "' Ascending='True'/></OrderBy></Query>"; 
     item_collection = Root_List.GetItems(query); 

लेकिन यह कैसे मैं माध्यमिक orderby आवेदन करूं?

नोट: अनुभाग एक स्ट्रिंग फ़ील्ड और ऑर्डर एक फ़ील्ड है।

+1

शायद यह मदद कर सकती है: http://www.u2u.be/Tools/wincamlquerybuilder/CamlQueryBuilder.aspx – Yahia

उत्तर

0

गणना कॉलम बनाने का प्रयास करें जो कॉलम को एक साथ जोड़ता है जिसे आप ऑर्डर करना चाहते हैं। फिर नई गणना कॉलम द्वारा अपनी सूची का ऑर्डर करें।

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

13

MSDN पर इस पेज के अनुसार, आप OrderBy तत्व के अंदर एक से अधिक FieldRef शामिल कर सकते हैं:

http://msdn.microsoft.com/en-us/library/ms467378.aspx

उदाहरण दिया है:

<OrderBy> 
    <FieldRef Name="Newcomers"/> 
    <FieldRef Name="Years" Ascending="FALSE"/> 
    <FieldRef Name="Location"/> 
</OrderBy> 
1

मैं का उपयोग सीएएमएल बिल्डर, यह जीवन को बहुत आसान बनाता है, खासकर जब आपको मुश्किल प्रश्न होते हैं, तो आप इसे यहां से प्राप्त कर सकते हैं:

http://www.u2u.be/res/tools/camlquerybuilder.aspx

2007 संस्करण 2010 से ठीक काम करता है, मैं पहली बार यह ऊपर जवाब काम नहीं कर रहा लगता है पर दैनिक

+0

http: // sharepoint .biwug.be/SitePages/Caml_Designer.aspx –

0

इसका इस्तेमाल मेरे मामले में। लेकिन असली समस्या थी क्योंकि मैं बाद में उन्हें DataTable में बदलने और उन्हें सुलझाने के लिए निम्न स्क्रिप्ट का उपयोग करें और CategoryPosition के प्रकार int नहीं किया गया था और स्ट्रिंग प्रकार के साथ डिफ़ॉल्ट जो रखेंगे 10 के बाद 1.

  DataView dv = new DataView(maindt); 
      dv.Sort = "Category,CategoryPosition"; 
      maindt = dv.ToTable(); 

इतना था इस तरह की चीजें देखें और एकाधिक सॉर्टिंग पर कैमल सॉर्टिंग स्टीव मैननीना उत्तर

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