2

我有一个收集电子邮件地址的页面,并在提交表单后查看该电子邮件是否存在。如果是,则用户无法创建实体。我不想显示一个正常的验证错误状态消息,而是显示一个很好的段落来解释带有几个链接的情况。

我尝试创建段落并使用 .visible = false 或 display:none 隐藏它,然后在传递给 AddTopValidationMethod 的方法中使其可见。这不起作用。

我知道我可以有 HTML 状态消息,但 1)我认为这不会那么好,并且 2)我无法使用 EwfLink 建立我的链接 - 我必须手写一个锚标记。

这里最好的解决方案是什么?

4

1 回答 1

3

尝试这个:

// Add the form item to the page.
var validationFailed = false;
myPanel.AddControlsReturnThis( myMod.GetEmailAddressTextFormItem( false, validationErrorNotifier: () => validationFailed = true, validationList: myPostBack ).ToControl() );

// Add the email-address-exists error placeholder to the page.
myPanel.AddControlsReturnThis(
  new ModificationErrorPlaceholder(
    new Validation(
      ( pbv, validator ) => {
        if( validationFailed )
          return;
        if( emailAddressExists( myMod.EmailAddress ) )
          validator.NoteErrorAndAddMessage( "The user will never see this." );
      },
      myPostBack ),
    errors => {
      if( !errors.Any() )
        return Enumerable.Empty<Control>();

      // Use any controls you want here!
      var link = EwfLink.Create( MyDestinationPage.GetInfo(), new TextActionControlStyle( "has a link" ) );
      return new Paragraph( new Control[] { "This sentence ".GetLiteralControl(), link, " in it.".GetLiteralControl() } ).ToSingleElementArray();
    } ) );

如果您希望说明段落位于电子邮件地址表单项上方,请将其验证添加到 a BasicValidationList,您可以在创建表单项后将其添加到回发对象中。

于 2014-09-07T21:48:53.913 回答