/// <summary> /// 提交指定 <see cref="CascadedEditContext"/> 的表单。 /// </summary> public async Task Submit() { if (CascadedEditContext == null) { throw new InvalidOperationException($"未设置 {nameof(CascadedEditContext)} 的表单,无法进行提交,请使用 {nameof(OnClick)} 触发点击按钮的事件。"); } var valid = CascadedEditContext.Validate(); if (valid) { IsSubmitting = true; await Disable(); await Task.Delay(ValidSubmitDelay); await OnValidSubmit.InvokeAsync(CascadedEditContext); IsSubmitting = false; await Disable(false); } else { await OnInvalidSubmit.InvokeAsync(CascadedEditContext); } }
private async Task HandleSubmitAsync() { if (OnSubmit.HasDelegate) { await OnSubmit.InvokeAsync(_fixedEditContext); } else { var isValid = _fixedEditContext.Validate(); if (isValid) { if (OnValidSubmit.HasDelegate) { await OnValidSubmit.InvokeAsync(_fixedEditContext); } else { await HandleValidSubmit(); } } if (!isValid && OnInvalidSubmit.HasDelegate) { await OnInvalidSubmit.InvokeAsync(_fixedEditContext); } } }
private async Task HandleSubmitAsync() { if (OnSubmit.HasDelegate) { // When using OnSubmit, the developer takes control of the validation lifecycle await OnSubmit.InvokeAsync(_fixedEditContext); } else { // Otherwise, the system implicitly runs validation on form submission var isValid = _fixedEditContext.Validate(); // This will likely become ValidateAsync later if (isValid && OnValidSubmit.HasDelegate) { await OnValidSubmit.InvokeAsync(_fixedEditContext); } if (!isValid && OnInvalidSubmit.HasDelegate) { await OnInvalidSubmit.InvokeAsync(_fixedEditContext); } } }
#pragma warning disable CA2007 private async Task HandleSubmitAsync() { Debug.Assert(_extensibleEditContext != null); var isValid = _extensibleEditContext !.Validate(); if (isValid) { if (OnValidSubmit.HasDelegate) { await OnValidSubmit.InvokeAsync(_extensibleEditContext.RootEditContext); } await _extensibleEditContext.OnValidSubmit(); } else { if (OnInvalidSubmit.HasDelegate) { await OnInvalidSubmit.InvokeAsync(_extensibleEditContext.RootEditContext); } await _extensibleEditContext.OnInvalidSubmit(); } }