在sharepoint文档库中添加或创建文档时,为自定义列指定值
我以为这很简单,但我猜不是。我有下面的代码,它可以很好地部署和激活,但是当我向文档库添加一个新文档时,什么也没有发生。也没有错误。这是直接取自另一个例子,网上有人说它有效 以下是我的功能的代码:在sharepoint文档库中添加或创建文档时,为自定义列指定值,sharepoint,Sharepoint,我以为这很简单,但我猜不是。我有下面的代码,它可以很好地部署和激活,但是当我向文档库添加一个新文档时,什么也没有发生。也没有错误。这是直接取自另一个例子,网上有人说它有效 以下是我的功能的代码: using System; using System.Collections.Generic; using System.Text; using Microsoft.SharePoint; namespace DocNumGenerator { class DocNumGenerator :
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
namespace DocNumGenerator
{
class DocNumGenerator : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
base.ItemAdded(properties);
}
public override void ItemAdding(SPItemEventProperties properties)
{
properties.AfterProperties["DocNum"] = "4321";
base.ItemAdding(properties);
}
public override void ItemUpdated(SPItemEventProperties properties)
{
base.ItemUpdated(properties);
}
public override void ItemUpdating(SPItemEventProperties properties)
{
base.ItemUpdating(properties);
}
}
}
简单对!为什么这样不行?除了指定的自定义列的名称之外,是否还需要指定文档库的名称?我迷失在这一点上,迫切需要一个解决方案。这是一个SharePoint 2007环境发布网站
谢谢你的帮助 能否尝试先调用base.base.ItemAddingproperties;,然后只需设置properties.ListItem[DocNum]和调用properties.ListItem.SystemUpdatefalse DocNum是显示名称还是内部名称?尝试在这些事件之间进行更改。在ItemAdded事件处理程序中尝试以下操作:
DisableEventFiring();
SPListItem item = properties.ListItem;
item["DocNum"] = "4321";
item.Update();
EnableEventFiring();
我成功了我发誓我以前试过。我也重新启动了,所以可能就是这样 以下是我现在的工作:
public override void ItemAdding(SPItemEventProperties properties)
{
this.DisableEventFiring();
properties.AfterProperties["Document Number"] = "whatever";
this.EnableEventFiring();
}
需要重新启动表明,即使您的文件已部署到GAC,仍有进程将其锁定。下次,试着运行IISRESET,看看它是否有效。