Я пытаюсь реализовать некоторую пользовательскую логику проверки на стороне сервера для настраиваемого элемента управления формы, работающего на Kentico v10.0.51 и .NET Framework 4.6. Я хочу, чтобы эта логика запускалась при отправке событий, и я хочу определить логику в коде позади пользовательского элемента управления формы. Как я могу сделать недействительной или остановить обработку формы из обработчика события нажатия кнопки «Отправить»? См. Прикрепленный для сокращенного контрольного примера, например.
https://pastebin.com/Lnt0Rn9y
using System;
using CMS.FormEngine.Web.UI;
using CMS.Helpers;
// ReSharper disable ArrangeAccessorOwnerBody
namespace CMSApp.CMSFormControls.Custom
{
public partial class ServerSideValidator : FormEngineUserControl
{
public override object Value
{
get { return txtValue.Value; }
set { txtValue.Value = ValidationHelper.GetString(value, string.Empty); }
}
protected override void OnInit(EventArgs e)
{
Form.SubmitButton.Click += SubmitButtonOnClick;
base.OnInit(e);
}
private void SubmitButtonOnClick(object sender, EventArgs e)
{
var valid = CustomValidationHelper.ServerSideValidationMethod(Value);
if (!valid)
{
//TODO: Invalidate the form before save or notify. (Form.?)
}
}
}
}