事件接收器在刷新列表之前不会影响

时间:2013-07-31 05:05:58

标签: sharepoint-2010

我有一个Sharepoint 2010列表。我编写了事件接收器代码来更新项目添加事件中的字段值。我得到了正确的结果,但是在刷新列表之前它没有更新字段值。为什么呢?

代码:

public override void ItemAdded(SPItemEventProperties properties)       
{
       base.ItemAdded(properties);

       SPWeb web = properties.OpenWeb();
       SPList list = properties.List;
       int highestValue = 0;

       SPQuery query = new SPQuery();
       query.Query = @"<OrderBy>
                         <FieldRef Name='NextNo' Ascending='FALSE' />
                     </OrderBy><RowLimit>1</RowLimit>";

       SPListItemCollection itemcollection = list.GetItems(query);
       if (itemcollection.Count > 0)
       {
           SPListItem item = itemcollection[0];
           highestValue = Convert.ToInt32(item["NextNo"]);
       }

       SPListItem currItem = properties.ListItem;
       currItem["NextNo"] = highestValue + 1;
       currItem.Update();
}      

1 个答案:

答案 0 :(得分:1)

您需要在更新列表之前使用ItemAdding事件接收器,并显示您的更改。列表更新后会触发ItemAdded事件,因此需要刷新。