سؤال

هل يمكن لخبير SharePoint أن يشرح لي ؛# في البيانات التي تم إرجاعها بواسطة استدعاء GetListItems () إلى خدمة الويب الخاصة بالقوائم؟

أعتقد أنني أفهم ما يفعلونه هنا. يشبه "#" تقريبًا بناء جملة لتقديم تعليق ... أو أفضل حتى الآن ، بما في ذلك البيانات الفعلية (السلسلة) وليس فقط المعرف. وبهذه الطريقة يمكنك استخدامها أيضًا ، لكنها يتم إقرانها بشكل جيد معًا في نفس العمود.

هل أنا بعيدًا عن القاعدة؟ لا يمكنني معرفة الاستخدام المختلف تمامًا. علي سبيل المثال

I have a list with:    
ows_Author  
658;#Tyndall, Bruno    
*in this case the 658 seems to be an ID for me in a users table somewhere*

ows_CreatedDate (note: a custom field. not ows_Created)    
571;#2009-08-31 23:41:58    
*in this case the 571 seems to be an ID of the row I'm already in. Why the repetition?*   

هل يمكن لأي شخص هناك إلقاء بعض الضوء على هذا الجانب من SharePoint؟

هل كانت مفيدة؟

المحلول

السلسلة ;# يستخدم كمحدد من قبل حقول البحث في SharePoint ، بما في ذلك حقول المستخدم. عند العمل مع نموذج الكائن ، يمكنك الاستخدام SPFieldLookupValue و SPFieldUserValue لتحويل السلسلة المحددة إلى كائن قوي من النوع. عند العمل مع خدمات الويب ، أعتقد أنك ستحتاج إلى تحليل السلسلة بنفسك.

أنت محق في أن الجزء الأول هو معرف عدد صحيح: معرف في قائمة مستخدمي الموقع ، أو معرف العنصر المقابل في قائمة البحث. الجزء الثاني هو اسم المستخدم أو قيمة عمود البحث.


يلاحظ نيكولاس بشكل صحيح أن هذا المحدد يستخدم أيضًا لقيم المجال المركبة الأخرى ، بما في ذلك ...

  • spfieldlookupvalueCollection
  • spfieldmulticolumnvalue
  • SpfieldMultichoiceValue
  • spfielduservaluecollection

نصائح أخرى

يرث spfielduser من spfieldlookup الذي يستخدم ؛# تدوين. يمكنك بسهولة تحليل القيمة عن طريق إنشاء مثيل جديد لفئة SPFieldLookupValue:

string rawValue = "1;#value";
SPFieldLookupValue lookupValue = new SPFieldLookupValue(rawValue);
string value = lookupValue.LookupValue; // returns value
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top