عدم کارکردن Event Receiver برای لیست های سفارشی شده با InfoPath

۱

سلام
بعد از مدت ها search تو اینترنت یه راهی برای redirect کردن تو ItemAdded پیدا کردم. این روش برای custom list ها درست جواب می ده ، اما برای لیست های سفارشی که با InfoPath سفارشی سازی شدند، کار نمی کنه.
کد به صورت زیر است:

private HttpContext _httpContext;
private static HttpContext _sHttpContext;
public ERComplaint(): base()
{
   _httpContext = HttpContext.Current;
}
public override void ItemAdding(SPItemEventProperties properties)
 {
   base.ItemAdding(properties);
   _sHttpContext = _httpContext;
}
public override void ItemAdded(SPItemEventProperties properties)
{
 base.ItemAdded(properties);
SPUtility.Redirect("/_layouts/Complaint/AppMessage.aspx?ID="+ properties.ListItemId.ToString(),SPRedirectFlags.Static,_sHttpContext);
}
}

نمی دونم مشکلش با لیست ای که با InfoPath ۲0۱۰ سفارشی شده چیه؟
ممنون می شم اگر راه حلی برای این مشکل داشتید، در اختیار من قرار بدید.

انصراف

۱  پاسخ

۰

مشکل از اینجا ناشی می شود که context در این حالت null است. روشی که برای ذخیره کردن HttpContext استفاده کردید کاملاً درست است. یک راه حل پیشنهادی استفاده از کد زیر است به همراه کد جاوا اسکریپت برای redirect کردن

Page.ClientScript.RegisterClientScriptBlock

نکته ای که باید به آن توجه داشت این است که اگر مشکل null بودن httpContext برطرف نشود همچنان با این کد هم مساله حل نخواهد شد

پاسخ داده شده ۱۲:۱۳ - ۱۳۹۱/۰۲/۰۷ hamed۳،۳۳۸۹۴۸۸۷
انصراف
انصراف