1

Sitecore 6.4.0 サイトでマーケター向け Web フォームを使用して簡単なフォームをセットアップしました。フォームは情報を適切に記録しており、 http://r-coding-sitecoreblog.blogspot.com/2011/11/extracting-data-のコードを使用して、エンドユーザーが結果を表示できるページを作成しました。 from-sitecore-wffm.html主に。

進行中の次のステップは、ユーザーが送信を承認/拒否できるようにし、そのフォーム送信の情報をメソッドに渡すか、そのフォーム送信をすべてまとめて削除できるようにすることです。

C#を使用してWFFMデータベースからフォーム送信を削除する方法はありますか? この方法を試してみましたがSitecore.Forms.Data.DataManager.DeleteForms()、運が悪かったのですが、個々のフォームの送信だけでなく、フォーム全体が削除されたのではないかと思います。

編集:さらに、個々のフォーム送信にフラグを設定し、承認/拒否としてマークし、コードで表示/非表示ロジックを処理することもできました。したがって、特定のフォーム送信に値を設定することも機能します。

4

1 に答える 1

1

私のブログで私のコード例の使用に関連する質問をいつでも投稿してください:-)

Datamanager クラスを使用することで、正しい軌道に乗っています。フォームのすべてのレコード/送信を (1 つずつ) 削除する例を次に示します。

フォーム自体は削除されません。提出されたデータベース エントリのみ。

        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 に答える