You could develop a httpmodule and trap anything you want. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martinez, Javier (Outsourcing) Sent: Wednesday, 26 November 2008 11:48 AM To: listserver@ozMOSS.com Subject: [OzMOSS] RE: Getting the current view of a list in the updating event handler.
Hi All, Regarding this thread, if any on is interested. I have found out the following regarding this code: public class ItemEventReceiver : SPItemEventReceiver { private SPContext CurrentContext; private SPViewContext CurrentViewContext; private String ViewID = ""; /// <summary> /// Initializes a new instance of the Microsoft.SharePoint.SPItemEventReceiver class. /// </summary> public ItemEventReceiver() { if (SPContext.Current != null) { CurrentContext = SPContext.Current; CurrentViewContext = CurrentContext.ViewContext; //ViewType = CurrentContext.List.Views[CurrentViewContext.ViewId].Type; ViewID = CurrentViewContext.ViewId.ToString(); } } ... public override void ItemUpdating(SPItemEventProperties properties) { properties.AfterProperties["Title"] = ViewType; } } 1) The View property is null in the SPViewContext object when using Data Sheet View. But returns an exception when using Standard View ('CurrentViewContext.View' threw an exception of type 'System.ArgumentException'). 2) The ViewId is {00000000-0000-0000-0000-000000000000} in theSPViewContext object when using Data Sheet View. But returns {7a7621b6-7892-4d6a-bc3f-7a7365b786a6} when using Standard View that looks a good one. 3) If I try to get the view using the ViewId returned in the Standar View using this code "CurrentContext.List.Views[CurrentViewContext.ViewId].Type;" I get the same exception that in the step one. I guess that for some reason the SPConext.Current is not able to get the current View when using the ActiveX control and when using html standard view, it is getting the wrong ID maybe because the ItemUdating event is fired when the page is in the edit page. I think here is more TODO work for Microsoft. For my porpoise I can use the ViewId to figure out what type of view I am on. But will be nice to have the proper value returned from the object. One thing I would like to ask. Is possible to add additional event handlers to the SPItemEventReceiver? What I was thinking of is to catch the beginEditing event of a list and see if there the SPContext object has the correct values there. Thanks / Regards, Javier ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martinez, Javier (Outsourcing) Sent: Tuesday, 25 November 2008 11:22 AM To: listserver@ozMOSS.com Subject: RE: [OzMOSS] RE: Getting the current view of a list in the updating event handler. Hi Ishai, Thanks for you reply. Your answer was not what I was hopping but gives me an idea of a way to try and I do not give up until I try my last idea. I remember reading on internet a way to get the current http context adding the following lines in the initialization of the class: using System.Web; namespace SoftwareRegisterList { public class ItemEventReceiver : SPItemEventReceiver { HttpContext CurrentHttpContext; public ItemEventReceiver() { CurrentHttpContext = HttpContext.Current; } ... } Yes, but the HttpContext do no have any reference to the SPView. Then I check the SPContext and I found that has a ViewContext property that return a SPViewContext object that contain an View property that return an SPView object. Then, I tried to use the same code but changing the HttpContext to SPConext like this: public class SoftwareRegisterEventReceiverItemEventReceiver : SPItemEventReceiver { SPContext CurrentContext; public SoftwareRegisterEventReceiverItemEventReceiver() { CurrentContext = SPContext.Current; } And yes, I get the SP Current Context but for my desperation the ViewContext property is not instantiated. Then I saw that was a CurrenContext method in the SPItemEventReceiver class. But again no luck and here is my first question: Why is an overridden CurrentContext method created when you add an event handler if this method does not exist in the SPItemEventReceiver Class at all and then it will never fire? I suppose the answer is the TODO summary description on the top. :o) At this point I am running out ideas but I would like to ask if you or any in the news group has tried this path and what was the outcome. Best Regards, Javier Martinez ________________________________ From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Ishai Sagi Sent: Monday, 24 November 2008 3:35 PM To: listserver@ozMOSS.com Subject: [OzMOSS] RE: Getting the current view of a list in the updating event handler. You cant. Even though the event is synchronous, you don't get a reference to the current context, which means you will not be able to tell. From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Martinez, Javier (Outsourcing) Sent: Monday, 24 November 2008 5:03 PM To: listserver@ozmoss.com Subject: [OzMOSS] Getting the current view of a list in the updating event handler. Hi All, I have been trying to figure out how to get the current view of a list in the updating event handler but no luck. My problem is that I want to know if the view is Standard or Grid and do different things depending on the view. Something like this: /// <summary> /// Synchronous before event that occurs when an existing item is changed, for example, when the user changes data in one or more fields. /// </summary> /// <param name="properties"> /// A Microsoft.SharePoint.SPItemEventProperties object that represents properties of the event handler. /// </param> public override void ItemUpdating(SPItemEventProperties properties) { if (string.IsNullOrEmpty((string)properties.AfterProperties["Person"]) == true) { if (string.IsNullOrEmpty((string)properties.AfterProperties["Return Date"]) == true) { if(GetCurrentViewType(properties.ListItem.ParentList).CompareTo("GRID") == 0) { properties.AfterProperties["Book out"] = 0; } else { properties.AfterProperties["Book out"] = false; } } } } public string GetCurrentViewType(SPList List) { foreach (SPView View in List.Views) { // This does not work when the List is embedded in a webPart if (View.Url.CompareTo(List.ParentWebUrl) == 0) { return View.Type; } } return "N/A"; } I have tried to use the parameters.ItemList.ParentList object with the GetView, Views and DefaultView properties but any of them return the view used in the current context. Any help will be appreciated. Regards, Javier This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ------------------------------------------------------------------- OzMOSS.com - to unsubscribe from this list, send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you. ------------------------------------------------------------------- OzMOSS.com - to unsubscribe from this list, send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com ------------------------------------------------------------------- OzMOSS.com - to unsubscribe from this list, send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com ------------------------------------------------------------------- OzMOSS.com - to unsubscribe from this list, send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com ------------------------------------------------------------------- OzMOSS.com - to unsubscribe from this list, send a message back to the list with 'unsubscribe' as the subject. Powered by mailenable.com