2015-08-24 110 views
2

在Sitecore WFFM(营销人员的Web表单) - 我们可以在运行时添加隐藏字段 - 即提交操作并为隐藏字段分配一些值。 我也想重用这个值,如果窗体上有一个异常,并且用户重新提交表单。在运行时添加隐藏字段

产品详细信息 - 7.2 rev。 141226,Web窗体为营销2.4 rev.140117

回答

0

由于非常简单,您可以创建隐藏字段像这样的(当然,你可以为你的隐藏字段提供另一种更复杂的定制行为):

public class HiddenField : SingleLineText 
{ 
    protected override void DoRender(System.Web.UI.HtmlTextWriter writer) 
    { 
     this.textbox.Parent.Parent.Visible = false; 
     base.DoRender(writer); 
    } 
} 

下一步,您需要使用WFFM注册该字段。为了做到这一点只需创建一个项目为您的新领域:

/sitecore/system/Modules/Web Forms for Marketers/Settings/Field Types/Custom/Hidden Field 

在您指定隐藏的现场组装和类名,为的是Sitecore的非常常见的方式该项目。

到目前为止,这么好。现在,您可以将隐藏字段用作其他字段,包括以编程方式添加它们。

P.S.不幸的是,我目前还没有一个以编程方式添加字段的代码示例。但是,您可以尝试使用Reflector,dotPeek或任何其他反汇编工具来查找。库应该已经在你的\ bin文件夹中,名为Sitecore.Forms.Core.dll

+0

嘿@Martin里程。 这里用上面的方法问题是我们如何在提交行为后在下面的方法中增加值到隐藏字段 public void Submit(ID formid,AdaptedResultList字段) 问题是我们只能读取添加到表单的字段的值,我们无法更新它。 foreach(AdaptedControlResult结果字段) { //访问hiddden字段并尝试更新。 // result.Value只是只读且无法更新 } – Saurabh

+0

所以我在这里的requiremnet将是 1)在表单抛出异常之前,将一些值添加到隐藏字段或视图状态(不是会话)。 2)一旦用户重新提交表单 - 我需要访问上面的保存值。 – Saurabh

+0

所以,你想添加隐藏的领域后点击按钮后,但它之前去服务器的价值?还是其他什么?你能否在更高层次上描述你的目标,让我理解为什么你需要这样的行为?你想创建多步骤的WFFM吗? –