SharePoint userData و ؛# بناء الجملة في البيانات التي تم إرجاعها
-
20-09-2019 - |
سؤال
هل يمكن لخبير 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