1

我们在我们的 Sitecore 6.4.0 网站上使用面向营销人员的 Web 表单设置了一个简单的表单。该表单可以很好地记录信息,我们编写了一个页面以允许最终用户查看结果,使用的代码来自http://r-coding-sitecoreblog.blogspot.com/2011/11/extracting-data-主要来自-sitecore-wffm.html

进程的下一步是允许用户批准/拒绝提交,并将该表单提交的信息传递给一个方法,或者一起删除该表单提交。

有没有办法使用 c# 从 WFFM 数据库中删除表单提交?我试过这个Sitecore.Forms.Data.DataManager.DeleteForms()方法没有运气,我怀疑它会删除整个表单,而不仅仅是单个表单提交。

编辑:此外,我什至可以处理在单个表单提交上设置一个标志,将其标记为已批准/拒绝,并且只处理我的代码中的显示/隐藏逻辑。因此,在特定表单提交上设置一个值也可以。

4

1 回答 1

1

随时欢迎您在我的博客上发布与使用我的代码示例相关的问题 :-)

使用 Datamanager 类,您走在了正确的轨道上。这是一个删除表单的所有记录/提交的示例(一个一个)。

它不会删除它自己的表单。仅提交数据库条目。

        string formID = ConfigurationManager.AppSettings["FormDataUploadID"].ToString(); 

        List<GridFilter> args = new List<Sitecore.Web.UI.Grids.GridFilter>();
        args.Add(new GridFilter("storageName", string.Empty, GridFilter.FilterOperator.Contains));
        args.Add(new GridFilter("dataKey", formID, GridFilter.FilterOperator.Contains));

        var submits = Sitecore.Forms.Data.DataManager.GetForms().GetPage(new PageCriteria(0, 0x7ffffffe), null, args);

        /// Create a Collection to Loop
        List<IForm> formlist = submits.ToList();

        /// Loop all forms from Database and delete each entry.
        foreach (IForm frm in formlist)
        {
            Sitecore.Forms.Data.DataManager.DeleteForms(new Sitecore.Data.ID(frm.FormItemId), frm.StorageName);
        }
于 2012-11-04T09:14:17.170 回答