.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
david stephan
Gaurav Pal
Post New Web Links

ItemUpdating event: what has been updated?

Posted By:      Posted Date: October 25, 2010    Points: 0   Category :SharePoint

Is there a way to know which item has been updated (and which are the updates) in a ItemUpdating event handler?

I was trying with this code:

      SPItemEventDataCollection before = properties.BeforeProperties;
      Hashtable table = before.ChangedProperties;
      ICollection collection = table.Keys;
      foreach (string str in collection)
        String prova = str + ": " + table[str];

but my collection results empty after the updating of some fields

Any idea about it?

View Complete Post

More Related Resource Links

SharePoint ItemUpdating EventReceiver and Office 2007 documents -- columns not updated



We've created an ItemUpdating EventReceiver that sets various properties (columns in the library) on the document based on user selections in a couple other properties.  This code works fine and for all file formats in a Windows 2003 Server/MOSS 2007 environment.

In a Windows 2008/MOSS 2007 environment, however, when we upload MS Office 2007 documents (e.g. docx, xlsx, pptx) these updates are not made.  What's interesting is that the code does actually execute (we've compared logging statements for non-MS Office 2007 files to MS Office 2007 files, and all settings being equal, the code executes exactly the same way on both files, but when the library list view is refreshed, the pre-MS Office 2007 document HAS the values, but the MS Office 2007 documents do not!.

Anyone have any idea why this code is not able to "commit" the values to the documents?  Again, the code works fine (per our logging output), it's just that the values do "not take".....Is there something in the Windows 2008/MOSS 2007/Office 2007 "integration" that might be interferring or that would prevent values form being updated?

Capture event when data is updated

I want to capture the event when a row in a table is updated and send selected items from that row in an XML format to a HTTP interface.

My thinking of how to capture the event would be either a trigger on the table or having a separate application which maybe running on another server capture the event. If I used a trigger how do I format the selected items from the table into an XML format and send it to a HTTP interface? If I used a separate application which could be a WCF Service then how do I subscribe to the table update event as to format into XML and send to a HTTP interface is straight forward.

My preference would be to use a WCF Service as it seems to me this is more flexible and I don't have to deploy anything on the SQL Server.

FormView doesnt call itemupdating event?


Hello all,

So, to sum is up, I have a FormView:

        <asp:FormView ID="fvSubscriptionEdit" DefaultMode="Edit" runat="server" GridLines="None"
            CssClass="SubEditPanel" OnItemUpdating="fvSubscriptionEdit_ItemUpdating">
                    Abonnement wijzigen</h2>
                <asp:HiddenField runat="server" ID="hfSubscriptionId" Value='<%# Bind("SubscriptionId")%>' />
                <asp:Label runat="server">Type wijzigen</asp:Label>
                <asp:DropDownList ID="ddlTypeEdit" runat="server" SelectedValue='<%# Bind("SubscriptionType")%>'>
                    <asp:ListItem Text="- Kies -" Value="1" />
                    <asp:ListItem Text="Upgrade" Value="upgrade" />
                    <asp:ListItem Text="Verlengen" Value="verlengen" />
                <hr />
                    Credits wijzigen</h2>
                <asp:Label runat="server">Nieuw aantal credits</asp:Label>

ItemUpdating event handler causes SPRequest object was not disposed error if properties.ListItem is


I have a very simple ItemUpdating event handler that is causing an SPRequest object was not disposed error when it is fired. The event handler is linked to the document library. I have cleaned out all of my code and narrowed it down to this:

    public override void ItemUpdating(SPItemEventProperties properties)
      SPListItem item = properties.ListItem;

When I change the name of a file or folder in my document list the following line is logged in the SP log:

An SPRequest object was not disposed before the end of this thread.  To avoid wasting system resources, dispose of this object or its parent (such as an SPSite or SPWeb) as soon as you are done using it.  This object will now be disposed.  Allocation Id: {D7AA6805-4CA1-458B-9252-E83D32DBD0D3}  To determine where this object was allocated, set Microsoft.SharePoint.Administration.SPWebService.ContentService.CollectSPRequestAllocationCallStacks = true.


As an extra note I have actually set the CollectSPRequestAllocationCallStacks to true, this is all the information that it gives me. If I comment out the pr

how to get all attachements in ItemUpdating event?



how to get attachements in ItemUpdating event?

i am trying to get all attachments in ItemUpdating event. here is my code.

  private HttpContext hContext = null;

        public BeforeCustomListItemAdding() : base()
            hContext = HttpContext.Current;

 public override void ItemUpdating(SPItemEventProperties properties)
     using (SPSite currentSite = new SPSite(properties.SiteId))
               using (SPWeb currentWeb = currentSite.OpenWeb(properties.RelativeWebUrl))

         SPList list = currentWeb.Lists[properties.ListId];

                   if (list.Title.ToLower() == "testlist")

Is it possible to update a list item in the ItemUpdating event receiver?


i need to add a property (SPListItem.Properties) to the SPListItem being updated in my ItemUpdating event receiver. is there any way to do that?

SPListItem.Update() doesnt seem to be an option, so the obvious answer is probably trying to use the SPItemEventProperties object called properties by calling properties.AfterProperties.ChangedProperties.Add(key, value) and letting sharepoint do the rest, but it turns out it actually deals with fields and not properties. it's a little misleading. so is there another way? some kind of painful work around maybe?

how to get all attachements in ItemUpdating event?



how to get attachements in ItemUpdating event?

i am trying to get all attachments in ItemUpdating event. here is my code.

  private HttpContext hContext = null;

        public BeforeCustomListItemAdding() : base()
            hContext = HttpContext.Current;

 public override void ItemUpdating(SPItemEventProperties properties)
     using (SPSite currentSite = new SPSite(properties.SiteId))
               using (SPWeb currentWeb = currentSite.OpenWeb(properties.RelativeWebUrl))

         SPList list = currentWeb.Lists[properties.ListId];

                   if (list.Title.ToLower() == "testlist")

Radio Button Event

Here I have explained the events of radio button with javascript.
Let me explain the scenarion first,
We are having two radio button say radioobtn1 and radiobtn2. If I click on the button 1 then I need to show one DIVor FORM. same as when I click on radiobtn 2. I have given the code for the above scenarion.

how to impose javascript event processing?


If I have some form control like textbox and I want the event handler to be located in the html instead of at the server side, how to do that? Of course I can copy paste javascript code in the aspx file. But is it possible to do that using some object oriented approach (ie programmatically in the code behind)?


Dropdown Event (Template Field)



I have grid view control that includes a dropdown control in a template field.

I wish to execute some code when the value is changed in the dropdown list.  Can't figure out how to capture this event though?

Any suggestions?

Event ID 1011 - DefaultAppPool World Wid Web Pub. Serv. fatal communication error

We have a Windows 2003 server running IIS6 1.1 Framework. We have also installed a DNS and Active Directory in the same machine.

We're randomly getting the error you can see below. Sometimes it causes the recycling of process w3wp.exe (which on my understanding represents the application pool worker processd) and other times results on this process hanging and not responding to any request. To do iisrest temporarly solves the problem.

We were pointed to a possible permissions problem between the user we were runnig the DefaultAppPool with and registry entries used by the iis. We noticed the default predifined user we used, Network Service, wasn't found in the Active Directory, so we changed it by the default configurable user, IWAM_MACHINE_NAME, which is under the IIS_WPG Active Directory Grupo, which, in theory has the correct permissions to run the application pool.

Well, none of this worked and we are still getting this error.

This is driving us crazy and think the problem might have to do with having the Domain Controller/Active Directory and the IIS6 running on the same machine. We'll try now uninstalling this DC pointing to another one to see what happens.

Any help would be appreciated.

Thanks in advance,


Event Type: Warning

Event not raised while parsing xml file



In Visual Studio 2010 ASP.NET 4.0

I want to write a procedure to validate a xml file with a xsd. I found some examples on the web but the one i chose does not work as attended. The example uses XmlReader with a XmlReaderSettings and a ValidationEventHandler.

Here is the code

Protected Sub VerifyDes(ByVal filename As String)

        Dim xslDes As XmlReaderSettings = New XmlReaderSettings()
        xslDes.Schemas.Add("", "http://www.mysite.com/xsd/ValidData.xml")
        xslDes.ValidationType = ValidationType.Schema
        xslDes.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings

        AddHandler xslDes.ValidationEventHandler, AddressOf xslDesValidationEventHandler

        Dim des As XmlReader = XmlReader.Create(filename, xslDes)

        While (des.Read())

        End While

    End Sub

    Protected Sub xslDesValidationEventHandler(ByVal sender As Object, ByVal e As ValidationEventArgs)

        'some code here
    End Sub

I tested this procedure with a xml file which was well formed but contained some elements which were not conform to the xsd.

No event or error occured. It said the file was valid.

Then i tested with a badly formed file. A XmlException was raised but nothing happened with the ValidationEventHandler.

It seems lik

How to set up microsoft application blocks 4.0 to talk to event viewer


I need to set up the microsoft application blocks 4.0 on the server and connect it to my web project.  I need to set it up so that all the errors are logged in the event viewer.  So far I have found out how to set up a flat file listener and send the error to a log file but, not to the event viewer.  Any suggestions would be helpful.

    Composite control: How to bubble a textbox's TextChanged event?


    I've created a composite control that contains several controls, including a textbox. I'm trying to expose the TextChanged event of the textbox as an event on the composite control. I understand that events can be bubbled up the control hierarchy and handled at a higher level, which I've attempted to do, but I can't get the bubbled event to fire. When I drop the control on an aspx I can see the TextChanged event, I can subscribe to the event, but nothing ever happens. Any suggestions? Here is what I think is the relevant code:

    // My event
    private static readonly object EventTextChanged = new object();

    //Handle the bubbled event
    EventHandler textChangedHandler = (EventHandler)Events[EventTextChanged];
    protected override bool OnBubbleEvent(object source, EventArgs e) 
        bool handled = false;

    Reporting services in 2008 r2 how to get a report in a print button click event in my c#.net page


    how to  get a report in my c#.net page button lick event also steps to call a report from asp.net to reporting services


    Thanks in advance

    Creating Event Handler in Code behind


    Hi, so I have a control that is created in the code behind and generates fine but I can't figure out how to create an event handler for it.  I've found plenty of examples for it in C sharp, but none of them seem to apply to VB.  What I want to do is essentially this:

    myDropDownList.SelectedIndexChanged = "Event to do here"

    but it doesn't seem to work for me.

    Any suggestions are appreciated.

    Subscribing to .Net event from COM



    Can somebody tell me how to subscribe to .net event from the COM through interoperability?

    namespace EventSource
        public interface IBugEvents
            void Hungry();
            void Found(string item);
        public class Bug
            public delegate void HungryEventHandler();
            public delegate void FoundEventHandler(string item);
            public event HungryEventHandler Hungry;
            public event FoundEventHandler Found;

    Can somebody tell me how to Subscribe to the Hungry and Found events from the COM?If possible help me with COM Code.

    ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
    Sql Server  SharePoint  Silverlight  Others  All   

    Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend