我有一个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();
}
答案 0 :(得分:1)
您需要在更新列表之前使用ItemAdding
事件接收器,并显示您的更改。列表更新后会触发ItemAdded
事件,因此需要刷新。