سؤال

عندي مشكلة مع هذا الحدثما هو هدفي:أرغب في تحديث إحدى الخصائص بناءً على معايير قليلة، لذلك أريد ملء الحقل "أ" إذا كان الحقل "أ" فارغًا والحقل "ب" ليس فارغًا والحقل "ج" ليس فارغًا أيضًا.

كيفية القيام بذلك بشكل صحيح لأنه باستخدام ItemUpdating تكون بعض الخصائص اللاحقة فارغة في بعض الأحيان أو أنها غير موجودة على الإطلاق وما إلى ذلك ..

أي نصيحة جيدة؟

فقط لأخبرك أن الأمر يتعلق شير بوينت 2007

تحديث:المشكلة هي أنني بحاجة لمقارنة القيمة السابقة والقيمة الجديدة:لذلك إذا قام شخص ما بتحديث عنصر.

السابق:العنصر الحالي :title=value1;العنوان2=القيمة1

يقوم شخص ما بالتحديث وفقًا لذلك:title=newValue

يجب أن يكون للعنصر المحدث القيمة التالية:title=newValue;title2 = newValue

في المرة القادمة بعد التحديث:title2=againANewValue;

يجب أن يكون العنصر المحدث كما يلي:title=againANewValue;title2=againANewValue;

لذلك يجب أن يظل كلا الحقلين متزامنين بغض النظر عن الحقل الذي تم تحديثه، لذلك لا أستطيع معرفة أي حقل تم تحديثه ثم أي حقل يجب تحديثه ..

هل ترى

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

المحلول 3

في النهاية قمت بحل مشكلتي بنفسي.

فقط عن طريق التحقق من listItem.AfterProperties["column"] ومقارنتها مع ListItem["column"] ثم تعيين القيمة مرة أخرى إلى ListItem.AfterProperties["column"]= value؛

نصائح أخرى

سؤال واحد فقط:هل هناك سبب لعدم استخدام ItemUpdated حيث سيتم تحديث كل حقلك بالمعلومات الجديدة؟

في ItemAdding، يجب عليك التحقق من كل من BeforeProperties وAfterProperties لتكون ناجحًا في هذه المهمة.

في العنصر المضاف:

title2 = title

في سير عمل ItemUpdated:

//Only when there is a change in title/title2 columns
if(title != title2)
{
    //Meaning title has changed
    if(title.beforeProperties.Value ==  title2)
    {
         title2 = title
    }
    //Meaning title2 has changed
    else if(title2.beforeProperties.Value ==  title)
    {
         title = title2
    }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top