التعامل مع البندتحديث استقبال الحدث اطلاق النار أكثر من مرة

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/110929

  •  29-09-2020
  •  | 
  •  

سؤال

السبب في إطلاق جهاز استقبال الأحداث لتحديث العناصر مرتين في حالة مكتبات المستندات هو تسجيل الوصول / الخروج.

كما يمكن إطلاق النار مرتين في حالة مكتبة/قائمة المستندات إذا كنا نقوم بتحديث قيم العناصر الحالية مع حدث تحديث هذا العنصر.

كيف يمكننا التعامل مع كل من هذه الحالات عن طريق رمز?

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

المحلول

للسيناريو عندما كنت واحد مما اثار الثانية ItemUpdating من خلال تغيير قيم العناصر ، يمكنك استخدام EventFiringEnabled المعلمة (يجب عليك استخدام try - catch -finally حوله):

this.EventFiringEnabled = false;
// Do the changes
item.Update();
this.EventFiringEnabled = true;

السيناريو الآخر هو أكثر صرامة ، والسبب وراء لماذا يمكنني استخدام ItemUpdated بدلا من ذلك عندما يكون ذلك ممكنا!

هل يمكن التحقق من BeforeProperties, ListItem و AfterPropertiesفي الخاص بك ItemUpdating مستقبل الحدث للتحقق مما إذا كانت هناك تحديثات يتم إجراؤها يجب عليك اتخاذ إجراء بشأنها.إذا لم يكن كذلك ، ثم فقط return.

هنا هو دليل عندما يمكنك استخدام .BeforePropertiesوعندما يجب أن تذهب في .ListItem بدلا من ذلك

نصائح أخرى

giveacodicetagpre.

https://www.simple-talk.com/dotnet/.net-tools/managing-itemupdating-itemupdated-events-firing-twice-in-a-sharepoint-item-إحياء الاستقبال /

robert حول الخصائص السابقة، نعم حقك سيكون هو نفسه بصرف النظر .... الحل الممكن فقط الذي يمكنني التفكير فيه سيكون استخدام هذا بدلا من ذلك

giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top