التعامل مع البندتحديث استقبال الحدث اطلاق النار أكثر من مرة
-
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
بدلا من ذلك
نصائح أخرى
robert حول الخصائص السابقة، نعم حقك سيكون هو نفسه بصرف النظر .... الحل الممكن فقط الذي يمكنني التفكير فيه سيكون استخدام هذا بدلا من ذلك
giveacodicetagpre.