繁体   English   中英

在EWL中,如何在页面的任意位置显示自定义验证内容?

[英]In EWL, how do I show custom validation content at an arbitrary place in the page?

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

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

我知道我可以收到HTML状态消息,但1)我认为效果不佳,2)我无法使用EwfLink建立链接-我必须手写锚标记。

最好的解决方案是什么?

尝试这个:

// 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();
    } ) );

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM