事件接收器停止工作

时间:2012-11-08 00:03:46

标签: sharepoint-2010 sharepoint-deployment

出于某种原因,当它停止工作时我正在使用事件接收器。我正在更新它并从Visual Studio 2010进行部署,它以前正在工作但是当我在查找字段时它停止了。即使我删除了刚刚添加的部分,它也不再工作了。有任何想法吗。谢谢。

    `/// An item was added.
    /// </summary>
    public override void ItemAdded(SPItemEventProperties properties)
    {
        base.ItemAdded(properties);
        string fname = Convert.ToString(properties.AfterProperties["Title"]);
        string Cdate = Convert.ToString(properties.AfterProperties["CDate"]).Substring(2, 2);
        // ---- Lookup fields ----- 
        String lookupZF = "Office";
        String ZF = Convert.ToString(properties.ListItem[lookupZF]);
        SPFieldLookupValue ZFValue = new SPFieldLookupValue(ZF);
        // ------ End of lookup fields ----- 
        string FName = fname + Cdate; // + ZFValue;

        SPSecurity.RunWithElevatedPrivileges(delegate()
                       {
                           using (SPSite site = new SPSite(properties.Web.Site.ID))
                           {
                               using (SPWeb web = site.OpenWeb())
                               {
                                   web.AllowUnsafeUpdates = true;
                                   SPList CurrentList = web.Lists[properties.ListId];
                             SPListItem Litem = CurrentList.GetItemById(properties.ListItemId);

                                   Litem["Description"] = "update working ...!";
                                   Litem["Prop No."] = FName;

                                   Litem.Update();
                                   CurrentList.Update();

                                   web.AllowUnsafeUpdates = false;
                               }
                           }
                       });
    }`

2 个答案:

答案 0 :(得分:0)

我建议您在部署解决方案后检查管理网站功能中是否已激活该功能。

答案 1 :(得分:0)

我不得不使用dateTime然后获得年份。由于某种原因,我得到空或空字符串,停止执行代码。这是有效的:

DateTime Cdate = DateTime.Parse(properties.ListItem["Created"].ToString());
string SDate = Cdate.Year.ToString().Substring(2, 2);